Se você já utiliza o PHPStan, você sabe o poder que a análise estática traz para um projeto PHP. No entanto, ao trabalhar com Laravel, o PHPStan pode encontrar dificuldades. O framework utiliza muita “mágica” — como facades, dynamic wheres e injeção de dependência via contêiner — que o PHPStan, por padrão, não consegue entender.
É aí que surge o Larastan.
O que é o Larastan? O Larastan é uma extensão do PHPStan feita especificamente para o Laravel. Ele adiciona ao PHPStan o conhecimento sobre a estrutura única do framework, permitindo que a ferramenta de análise entenda os métodos mágicos, Models do Eloquent, Routes e o ciclo de vida da aplicação.
Basicamente, ele permite que você aplique níveis rigorosos de análise estática em um projeto Laravel sem receber centenas de falsos positivos sobre métodos que “não existem” (mas que o Laravel sabe resolver em tempo de execução).
Mão na massa: Aplicando o Larastan Link para o cabeçalho
Embora o Larastan seja focado em Laravel, a sua instalação segue a lógica de ferramentas de análise.
1. Instalação via Composer Link para o cabeçalho
No seu projeto Laravel, execute:
composer require --dev nunomaduro/larastan
2. Configuração (phpstan.neon)
Link para o cabeçalho
Crie ou atualize o arquivo phpstan.neon na raiz do seu projeto. O ponto mais importante é incluir a configuração do Larastan:
includes:
- ./vendor/nunomaduro/larastan/extension.neon
parameters:
paths:
- app
level: 5 # Nível recomendado para começar
3. Exemplo de uso Link para o cabeçalho
Imagine que você tem um Model User e está buscando um usuário no seu UserController:
// app/Http/Controllers/UserController.php
public function show($id) {
// O PHPStan comum reclamaria que 'where' ou 'first' não existem no model
$user = User::where('id', $id)->first();
return view('user.profile', ['user' => $user]);
}
Sem o Larastan, o PHPStan poderia acusar erro. Com o Larastan, ele entende perfeitamente a integração com o Eloquent e valida que a operação é válida.
4. Executando a análise Link para o cabeçalho
Rode o comando:
./vendor/bin/phpstan analyse
Diferenças chave: PHPStan vs. Larastan Link para o cabeçalho
| Característica | PHPStan | Larastan |
|---|---|---|
| Foco | PHP Geral | Específico para Laravel |
| Eloquent | Não entende os métodos | Entende perfeitamente |
| Configuração | Genérica | Otimizada para o framework |
| Falsos Positivos | Comuns em Laravel | Mínimos |
Por que usar? Link para o cabeçalho
-
Segurança no Eloquent: Garante que você está usando as consultas de banco de dados corretamente.
-
Refatoração Segura: Se você renomear um método ou alterar um tipo de retorno, o Larastan apontará exatamente onde o sistema irá quebrar.
-
Padronização: Mantém o nível de qualidade alto em times que trabalham no mesmo projeto Laravel.