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.phpeConsole/Kernel.php: O registro de middlewares globais, grupos e agendamentos de tarefas agora é centralizado de forma fluente no arquivobootstrap/app.php. - Menos Service Providers: Quase todos os
AppServiceProvider,AuthServiceProvidereRouteServiceProviderforam 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
/upintegrado de fábrica via configuraçãowithRouting(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:
- 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.
- Suíte de testes automatizados: Ter uma cobertura mínima com
PestouPHPUnité essencial para detectar quebras de compatibilidade rapidamente. - 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
- Atualize o
composer.json:laravel/framework:"^11.0"nunomaduro/collision:"^8.1"(se aplicável)
- Execute a atualização de pacotes:
composer update --with-all-dependencies - 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.
- O Laravel 11 introduziu a convenção de métodos
- 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.