Blog   We BRT
Laravel Feb 17, 2026
71 views

Analiză statică în Laravel cu PHPStan și Larastan

Acest ghid explică utilizarea PHPStan și Larastan pentru analiză statică în aplicațiile Laravel, de la instalare și configurare până la exemple practice și bune practici pentru menținerea calității codului.

1. Ce este analiza statică?

Analiza statică verifică codul fără a executa aplicația. Detectează: - erori de tipuri - metode inexistente - proprietăți invalide - probleme de design

În Laravel, combinația standard este:

  • PHPStan -- motorul de analiză
  • Larastan -- extensie care înțelege Eloquent, Facades, Container, etc.

2. Instalarea PHPStan

composer require --dev phpstan/phpstan

Test rapid:

vendor/bin/phpstan analyse

3. Instalarea Larastan

composer require --dev nunomaduro/larastan

4. Configurarea phpstan.neon

Creează fișierul phpstan.neon:

includes:
    - vendor/nunomaduro/larastan/extension.neon

parameters:
    paths:
        - app

    level: 6

    checkMissingIterableValueType: false

Niveluri PHPStan

  • 0--3: bazic
  • 4--6: recomandat pentru majoritatea proiectelor
  • 7--9: strict (enterprise)

5. Creșterea nivelului progresiv

Strategie recomandată:

  1. Începe cu nivel 5--6
  2. Fixează erorile
  3. Crește la 7--8
  4. Elimină folosirea mixed

6. Folosirea Baseline (pentru proiecte mari)

Dacă proiectul are multe erori existente:

vendor/bin/phpstan analyse --generate-baseline

Va crea:

phpstan-baseline.neon

Adaugă în config:

includes:
    - phpstan-baseline.neon

Astfel eviți blocarea pipeline-ului pe erori vechi.


7. Exemple reale de erori detectate

Return type greșit

public function getUser(): User
{
    return null;
}

Proprietate inexistentă

$user->fullname;

Tip greșit într-o metodă

public function setAge(int $age)
{
}

$this->setAge("25");

8. Probleme comune în Laravel

Eloquent fără tipuri

Recomandare:

/** @property string $name */
class User extends Model
{
}

Sau folosirea generics în repository.


9. Integrare CI/CD (GitHub Actions)

name: Static Analysis

on: [push]

jobs:
  phpstan:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
      - uses: shivammathur/setup-php@v2
        with:
          php-version: 8.2
      - run: composer install
      - run: vendor/bin/phpstan analyse

10. Bune practici

  • Rulează analiza la fiecare PR
  • Nu ignora erori fără justificare
  • Folosește tipuri returnate peste tot
  • Evită @phpstan-ignore-next-line
  • Rulează PHPStan local înainte de commit

11. Nivel strict (exemplu enterprise)

parameters:
    level: 9
    reportUnmatchedIgnoredErrors: true

Concluzie

Integrarea PHPStan + Larastan într-un proiect Laravel ridică semnificativ calitatea codului, previne bug-uri înainte de runtime și face aplicația mai sigură, predictibilă și ușor de mentenanțat.

#Laravel #PHP #PHPstan #Larastan
Ce parere ai?
Distribuie articolul:

Articole asemanatoare