Appearance
PHP Stan
PHPStan je statický analyzátor kódu pro PHP, který se zaměřuje na hledání chyb v čas kompilace. Umožňuje vývojářům detekovat potenciální chyby ve svém kódu ještě před jeho spuštěním. Tento nástroj má schopnost zlepšovat kvalitu a robustnost kódu.
Klíčové vlastnosti
- Statická analýza: Analyzuje kód bez jeho spuštění, což umožňuje detekci chyb, které by jinak byly odhaleny až během runtime.
- Typová kontrola: PHPStan kontroluje typy proměnných a návratových hodnot funkcí, čímž napomáhá identifikovat chyby typu a zvyšuje bezpečnost kódu.
- Konfigurovatelná úroveň přísnosti: Nabízí různá úrovně přísnosti kontroly, od základních kontrol po přísné typové a logické analýzy.
- Integrace s CI/CD: Snadno se integruje do nepřetržité integrace a nasazení (CI/CD) procesů, což umožňuje detekci chyb v rámci automatizovaných buildů.
- Rozšiřitelnost: PHPStan je rozšiřitelný pomocí rozšíření, která umožňují přidávat další pravidla a přizpůsobit analýzu specifickým potřebám projektu.
Použití
V example laravel project je phpstan.neon, který je jako ukázka, jak by měl být nastavený.
PHPStan Konfigurace
Tato konfigurace PHPStanu je navržena pro zajištění vysoké kvality a bezpečnosti kódu ve vašem projektu. Obsahuje několik klíčových komponent a pravidel pro detekci potenciálních problémů v kódu.
Obecné Nastavení
Level: Nastaveno na max, což představuje nejpřísnější úroveň analýzy. PHPStan na této úrovni hledá i velmi subtilní problémy v kódu, čímž pomáhá zajistit jeho vysokou kvalitu.
Důležité Inkluze
phpstan-baseline.neon: Slouží jako baseline, která ignoruje existující chyby, o kterých již víme, a zaměřuje se na nové problémy.vendor/phpstan/phpstan:- phpstan-deprecation-rules: Obsahuje pravidla pro identifikaci zastaralých konstrukcí v kódu, což je důležité pro přípravu na aktualizace PHP a frameworku.
- phpstan-phpunit: Podporuje analýzu testů napsaných s PHPUnit, čímž zajišťuje, že testovací kód dodržuje nejlepší praktiky.
- phpstan-strict-rules: Poskytuje sadu přísných pravidel pro ještě hlubší kontrolu kódu, což pomáhá odhalovat potenciální chyby dříve.
vendor/spaze/phpstan-disallowed-calls: Obsahuje pravidla pro zakazování nebezpečných, nesprávných nebo nevhodně používaných volání funkcí a struktur v kódu.- disallowed-dangerous-calls: Zakazuje potenciálně nebezpečná volání funkcí.
- disallowed-execution-calls: Zakazuje funkce pro exekuci škodlivého nebo nepředvídatelného kódu.
- disallowed-insecure-calls: Blokuje funkce, které mohou představovat bezpečnostní riziko.
- disallowed-loose-calls: Zakazuje funkce a přístupy kódování, které nejsou striktní a mohou vést k chybám.
vendor/thecodingmachine/phpstan-safe-rule: Jedná se o pravidlo pro zvýšení bezpečnosti kódu tím, že dává důraz na potenciálně nebezpečná místa a podporuje lepší praxi.
Používání
V composer.json máme základní používání phpstanu:
composer phpstan- Skenuje projekt a podle nastaveníphpstan.neona vypisuje chybycomposer phpstan:baseline- Přidá ignore errors dophpstan-baseline.neon, které jsou aktuálně v projektu. Dobré pro případy, kdy se zvyšuje skokově level, nebo se přidává další rozšíření, nebo se upgraduje php/framework verze.