O Laravel 5 já saiu do forno, mas o medo da mudança está afetando muitos desenvolvedores. Já ouvi comentários de pessoas reclamando sobre mudanças radicais do tipo: por que esta nova estrutura de pastas? Será que minha aplicação vai quebrar se eu der um composer update?

Neste artigo dou algumas dicas sobre como fazer a transição do Laravel 4 para o Laravel 5 e entender a nova estrutura de pastas.

Instalação

Primeiro vamos instalar o Laravel 5 em nosso computador e criar uma pasta temporária onde deixaremos a versão da aplicação do Laravel 4.

Eu prefiro instalar o Laravel via composer, mas você pode conferir a documentação para sair mais sobre formas alternativas de se instalar o Laravel.

Se tudo der certo, você deverá ver a página de boas vindas do Laravel 5.

 Arquivos de Configuração

A antiga pasta app/config agora fica na raiz da aplicação. O arquivo .env é carregado automaticamente e pode ser usado para separar seu ambiente de desenvolvimento local de ambientes de homologação, produção, etc.

Rotas

As rotas no Laravel 4 são registradas dentro de app/routes.php. No Laravel 5 tudo que é relacionado a HTTP está agrupado debaixo da pasta /Http , incluindo as rotas, então mude seu app/routes.php para app/Http/routes.php.

Filtros

O Laravel 5 alterou a nomenclatura de filters para middlewares, então se você possuir algum filter dentro de suas rotas, certifique-se de altera-los para middlewares.

Se você possui um filter customizado, você pode migra-lo para um middleware. Eu tenho um middleware chamado GoogleLogin que utilizado em minhas rotas, então a implementação seria assim:

O filtro de proteção CRSF é adicionado por padrão. Se quiser remove-lo, você pode ir no arquivo app/Http/Kernel.php e comentar a linha apropriada.

Controllers

Como nossos controllers são considerados como parte da lógica HTTP, precisamos mover tudo que estiver em app/controllers/* para app/Http/Controllers e colocar o namespace AppHttpControllers. Um último problema que você vai precisar resolver é alterar o BaseController para a classe Controller.

Se você não gostar do namespace do App root, você pode muda-lo em todos os locais utilizando o comando artisan abaixo:

Migrações

A pasta app/database agora fica dentro da pasta/database e você só precisa transferir seus arquivos para lá. A pasta já contém as tabelas users e password_resets que você pode querer modificar ou remover de acordo com suas necessidades.

Models

A pasta dos models no Laravel 4 se foi, e o Laravel 5 coloca o model User diretamente dentro da pasta app como exemplo. Você pode transferir seus models para lá também, e colocar o namespace deles com App.

No entanto, se você não estiver confortável com seus models ali, você pode criar uma nova pasta debaixo da pasta app chamada Models, mas não se esqueça de colocar o namespace AppModels em suas classes.

 Views

As views da aplicação foram transferidas de app/views para resources/views.

A pasta resources também contém a pasta lang para a localização de sua aplicação, e uma pasta assets para os recursos do front. O Laravel 5 introduziu o Elixir que adapta tarefas do Gulp para o ambiente de desenvolvimento do Laravel.

Composer

Certifique-se de copiar as dependencias do composer de sua aplicação e faça as atualizações necessárias.

Formulários e HTML

O package illuminate/html foi removido da instalação padrão do Laravel e por isso você precisará instala-lo separadamente.

Para trazer de volta os helpers HTML para o seu projeto, você precisa adicionar o package "illuminate/html": "5.0.*" ao seu composer.json, executar o comando composer update e então adicionar 'IlluminateHtmlHtmlServiceProvider' no array de providers do seu  config/app.php.

Conclusão

A complexidade e a duração do processo de atualização para o Laravel 5 sempre vai depender do tamanho da sua aplicação, e talvez o processo seja muito mais demorado do que parece ser a explicação neste post.

Você não é obrigado a atualizar para nova estrutura de pastas, e você pode manter as pastas antigas e apenas atualizar as dependencias do seu composer, mas eu não recomendo isso de maneira alguma. O Laravel 5 está ainda mais robusto e preparado para as novas tendencias do PHP, e minha opinião é que vale a penas apostar nestas mudanças. Se quiser ler mais sobre migração entre versões do Laravel, confira a documentação oficial (em inglês).

Fabio Ferreira on EmailFabio Ferreira on InstagramFabio Ferreira on Twitter
Fabio Ferreira

Desenvolvedor Javascript e PHP, é editor do blog Café na Veia e também atua como desenvolvedor web freelancer na cidade de São Paulo.


Author: Fabio Ferreira

Desenvolvedor Javascript e PHP, é editor do blog Café na Veia e também atua como desenvolvedor web freelancer na cidade de São Paulo.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Instagram did not return any images.

Siga também nosso Instagram!