Mateus Cavalcanti13 de set. de 20263 minBackend
ArquiteturaBackendLaravelPHPWeb Development

Laravel 11: Novidades de arquitetura e guia prático de migração

O lançamento do Laravel 11 marcou uma das maiores reestruturações de esqueleto de projeto do framework dos últimos anos. Com foco em redução de boilerplate e simplicidade operacional, o framework eliminou arquivos desnecessários e consolidou configurações que antes ficavam espalhadas por dezenas de classes e providers.

Neste artigo, revisamos as principais mudanças de arquitetura e apresentamos um checklist seguro para migrar suas aplicações.


1. O novo esqueleto enxuto

A nova estrutura removeu diretórios inteiros que antes vinham por padrão em novas instalações:

  • Fim do Http/Kernel.php e Console/Kernel.php: O registro de middlewares globais, grupos e agendamentos de tarefas agora é centralizado de forma fluente no arquivo bootstrap/app.php.
  • Menos Service Providers: Quase todos os AppServiceProvider, AuthServiceProvider e RouteServiceProvider foram combinados ou dispensados; o Laravel agora descobre políticas e rotas automaticamente por convenção.
  • Configurações em cascata: O diretório config/ não vem mais populado com dezenas de arquivos por padrão; se você não precisa customizar um arquivo de configuração, ele herda diretamente os padrões do core.
  • Health Check nativo: Endpoint /up integrado de fábrica via configuração withRouting(health: '/up').
// bootstrap/app.php no Laravel 11
use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;

return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        web: __DIR__.'/../routes/web.php',
        api: __DIR__.'/../routes/api.php',
        commands: __DIR__.'/../routes/console.php',
        health: '/up',
    )
    ->withMiddleware(function (Middleware $middleware) {
        $middleware->alias([
            'role' => \App\Http\Middleware\CheckRole::class,
        ]);
    })
    ->withExceptions(function (Exceptions $exceptions) {
        // Tratamento global de exceções
    })->create();

2. Pré-requisitos para a migração

Antes de iniciar a migração em projetos legados:

  1. PHP 8.2+: Garanta que seu ambiente de desenvolvimento e servidores de produção estejam rodando no mínimo a versão 8.2 do PHP.
  2. Suíte de testes automatizados: Ter uma cobertura mínima com Pest ou PHPUnit é essencial para detectar quebras de compatibilidade rapidamente.
  3. Dependências de terceiros: Verifique se todos os pacotes comunitários instalados via Composer já possuem suporte ao Laravel 11.

3. Checklist prático passo a passo

  1. Atualize o composer.json:
    • laravel/framework: "^11.0"
    • nunomaduro/collision: "^8.1" (se aplicável)
  2. Execute a atualização de pacotes:
    composer update --with-all-dependencies
    
  3. Ajuste chamadas de banco e casts de modelo:
    • O Laravel 11 introduziu a convenção de métodos casts() em modelos Eloquent em substituição à propriedade protegida $casts.
  4. Execute as validações e testes:
    php artisan test
    php artisan config:cache
    php artisan route:list
    

Dica final

Você não é obrigado a reestruturar todo o esqueleto do seu projeto legado para o novo formato do bootstrap/app.php logo no primeiro dia. O Laravel 11 mantém compatibilidade reversa com a estrutura do Laravel 10. Atualize primeiro as dependências e garanta a estabilidade em produção; depois, modernize a estrutura de pastas gradualmente.

Busca Global e Comandos

Navegue por artigos, projetos, certificações ou execute comandos rápidos.