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.