Generator konfiguracji PHPStan
Gotowy phpstan.neon: poziom analizy, ścieżki i rozszerzenia
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćGenerator konfiguracji PHPStan
Generator PHPStan tworzy gotowy plik phpstan.neon dla projektu PHP. Wybierasz poziom analizy, ścieżki do sprawdzenia i rozszerzenia, a narzędzie składa poprawny format NEON.
Poziomy analizy PHPStan
PHPStan ma dziesięć poziomów (0-9) rosnącej surowości. Poziom 0 sprawdza nieznan klasy i funkcje, wyższe wymagają pełnych typów, a 9 jest restrykcyjny jak narzędzia dedykowane typom. Zalecana droga: zacznij od poziomu, na którym projekt przechodzi, i podnos go stopniowo.
| Poziom | Co sprawdza |
|---|---|
| 0-2 | nieznane klasy, sygnatury metod, liczba argumentów |
| 3-5 | zwracane typy, typy w pętlach i warunkach |
| 6-8 | null-safety, typy właściwości, brakujące typy w phpdoc |
| 9 | ścisłe typy mieszane — dla projektów w pełni typowanych |
Rozszerzenia oficjalne
Rozszerzenie phpstan-strict-rules dodaje reguły dyscypliny typów (np. zakaz używania typu mixed bez potrzeby), a deprecation-rules wykrywa wywołania przestarzałych klas i metod. Generator dopisuje wymagane sekcje includes oraz listę pakietów composer do instalacji.
Jak działa generator konfiguracji PHPStan
Generator działa jak kompilator formularza do pliku NEON. Zbierasz trzy decyzje: poziom analizy (liczba całkowita od 0 do 9), listę ścieżek do przeskanowania oraz zestaw rozszerzeń. Na tej podstawie narzędzie buduje sekcję parameters z kluczem level i tablicą paths, a następnie dodaje sekcję includes, jeśli wybrano jakiekolwiek rozszerzenie.
Każde rozszerzenie mapowane jest na dwa elementy: wpis w includes wskazujący plik konfiguracyjny oraz odpowiadający mu pakiet Composer do instalacji. Generator nie zgaduje zawartości projektu — ścieżki i poziom pochodzą wprost z Twoich pól. Wynikiem jest tekstowy plik phpstan.neon, który możesz wkleić do repozytorium i uruchomić komendą vendor/bin/phpstan analyse.
Narzędzie nie wykonuje analizy kodu ani nie sprawdza, czy podane ścieżki istnieją. Pełni rolę składniowego szablonu: pilnuje poprawnego wcięcia, cudzysłowów i kolejności sekcji, dzięki czemu unikasz błędów formatu NEON, które PHPStan zgłasza jako błąd parsowania konfiguracji.
Przykład krok po kroku: poziom 6 z dwoma rozszerzeniami
- W polu poziomu wybierasz 6. To o trzy poziomy mniej niż maksimum, bo PHPStan udostępnia poziomy od 0 do 9 — powyżej 6 pozostają jeszcze 7, 8 i 9.
- Dodajesz dwie ścieżki: src oraz tests. W sekcji parameters.paths pojawią się dwa wpisy.
- Zaznaczasz rozszerzenia phpstan-strict-rules i deprecation-rules. Generator dopisuje dwa wpisy w includes oraz dwie komendy composer require --dev.
- Opcjonalnie dodajesz larastan. Wtedy łączna liczba pozycji w includes rośnie do trzech, a lista pakietów Composer do trzech.
- Kopiujesz wynik do pliku phpstan.neon w katalogu głównym projektu. Uruchamiasz vendor/bin/phpstan analyse i widzisz błędy dla poziomu 6.
- Jeśli błędów jest zbyt wiele, wracasz do generatora, zmieniasz poziom na 5 lub 4 i stopniowo podnosisz próg w kolejnych iteracjach.
Tabela referencyjna elementów konfiguracji
| Element | Sekcja w phpstan.neon | Znaczenie |
|---|---|---|
| Poziom analizy | parameters.level | Liczba od 0 do 9; im wyższa, tym więcej reguł typowania. |
| Ścieżki | parameters.paths | Lista katalogów lub plików poddawanych analizie. |
| strict-rules | includes | Dodaje reguły dyscypliny typów, w tym kontrolę użycia mixed. |
| deprecation-rules | includes | Wykrywa wywołania przestarzałych klas i metod. |
| larastan | includes | Rozpoznaje fasady i Eloquent w projektach Laravel. |
| ignoreErrors | parameters | Lista wyjątków od reguł, dopasowywana do komunikatów błędów. |
| Pakiety Composer | poza plikiem NEON | Komendy require --dev dla wybranych rozszerzeń. |
Praktyczny poradnik użycia
- Zacznij od poziomu, który przechodzi. Ustaw taki poziom, przy którym analiza kończy się sukcesem, a dopiero potem podnoś go o jeden krok. Zielony build w CI jest ważniejszy niż ambitny próg z setkami błędów.
- Ograniczaj ścieżki stopniowo. Najpierw wskaż tylko katalog źródłowy, a testy dodaj później. Zbyt szeroka lista ścieżek na starcie generuje szum i zniechęca do dalszej pracy.
- Rozszerzenia dodawaj świadomie. strict-rules i deprecation-rules mają sens, gdy zespół akceptuje ich reguły. Włączaj je po ustabilizowaniu podstawowego poziomu.
- Ignoruj błędy punktowo. W sekcji parameters umieszczaj ignoreErrors z konkretnym wzorcem komunikatu, zamiast wyłączać całą regułę. Dzięki temu nie tracisz kontroli nad resztą kodu.
- Trzymaj konfigurację w repozytorium. Plik phpstan.neon powinien być wersjonowany razem z kodem, aby każdy członek zespołu i pipeline CI korzystał z tych samych ustawień.
Ograniczenia generatora
- Nie analizuje kodu. Narzędzie nie sprawdza, czy projekt rzeczywiście przechodzi wybrany poziom ani czy wskazane ścieżki istnieją. Tworzy wyłącznie poprawny składniowo plik NEON.
- Nie generuje baseline. Nie tworzy pliku z listą wyjątków dla istniejących błędów. Baseline trzeba wygenerować ręcznie komendą PHPStan i samodzielnie dodać do includes.
- Nie instaluje pakietów. Generator wypisuje komendy composer require, ale nie uruchamia ich za Ciebie. Instalację rozszerzeń wykonujesz w swoim środowisku.
- Nie zna struktury projektu. Nie rozpoznaje frameworka ani konwencji katalogów. Ścieżki, poziom i rozszerzenia są w całości Twoją decyzją, dlatego wynik wymaga ręcznej weryfikacji przed commitem.
Najczęstsze pytania
Jaki poziom PHPStan wybrać na start?
Dla legacy projektu często startuje się z poziomu 0-2 i podnosi co kilka tygodni. Zielony poziom w CI jest ważniejszy niż ambitny poziom z tysiącem błędów.
Czy PHPStan analizuje Laravel?
Podstawowo tak, a larastan (phpstan-laravel) dodaje rozpoznawanie fasad i Eloquent. Config z generatora jest kompatybilny — wystarczy dodać rozszerzenie do includes.
Jak pominąć wybrane błędy?
W sekcji parameters dodaj ignoreErrors z patternami komunikatów. Lepiej jednak ignorować punktowo, a nie wyłączać całe reguły.
Co daje poziom 9 w PHPStan?
Poziom 9 to najbardziej restrykcyjny próg w skali od 0 do 9. Wymaga ścisłego typowania i jest przeznaczony dla projektów w pełni typowanych, w których zespół akceptuje rygorystyczne reguły dotyczące typu mixed.
Jak zainstalować phpstan-strict-rules?
Dodaj pakiet przez Composer jako zależność deweloperską, a następnie wpisz odpowiedni plik konfiguracyjny w sekcji includes. Generator podpowiada obie czynności, ale instalację wykonujesz samodzielnie w katalogu projektu.
Czy generator obsługuje plik baseline?
Nie. Narzędzie nie tworzy baseline ani nie dodaje go automatycznie do konfiguracji. Jeśli chcesz ignorować istniejące błędy, wygeneruj baseline ręcznie i dopisz go do includes w pliku phpstan.neon.
Jak ustawić wiele ścieżek w phpstan.neon?
Ścieżki trafiają do tablicy parameters.paths jako osobne wpisy. W formularzu podajesz je po jednej, a generator zamienia je na poprawną składnię NEON z zachowaniem wcięć.
Czy poziom 0 w PHPStan ma sens?
Tak, szczególnie w projektach legacy. Poziom 0 sprawdza nieznane klasy i funkcje, więc daje szybki sygnał o brakujących zależnościach. Od niego można stopniowo podnosić próg wraz z porządkowaniem kodu.