Různé nástroje, přehled
PHP_CodeSniffer (phpcs, phpcbf, composer squizlabs/php_codesniffer)
PHP-CS-Fixer (php-cs-fixer, PHP Coding Standards Fixer, composer friendsofphp/php-cs-fixer)
Easy-Coding-Standard (ecs, composer symplify/easy-coding-standard)
A další: Editorconfig-checker (ec, .editorconfig, xml, latte, css, html, yaml, neon, json) Používám též pro ostatní typy souborů Composer normalizer specializovaný nástroj jen pro composer. PhpStorm plugins & settings (integrované nástroje stylu přímo IDE. Je dobré nastavit si IDE, ale není možné pak kontrolovat v CI) RectorPHP (na automatizovaný refactoring) ...
Ve své praxi nejčastěji používám PHP_CodeSniffer s rozšířením Slevomat sniffů. Na některých projektech jsem potkal PHP-CS-Fixer. Easy-coding-standard kombinuje možnosti obou nástrojů.
Dle následující tabulky vychází ale lépe PHP-CS-Fixer (novější PHP, vyšší verze podporovaného PHP, netáhne si s sebou technický dluh způsobený podporou staré verze PHP).
Easy-Coding-Standard nemá podporu v PHPStormu, navíc to je jen obálka nad phpcs/php-cs-fixerem.
Zajímavostí je, že balíček pravidel (sniffů) od Slevomatu má na githubu více hvězdiček jak původní phpcs a i více forků. Dobrá práce!
Velkou nevýhodou php-cs-fixeru je, že nepodporuje php komentáře pro ignorování řádků či bloků kódu. A nechci ignorovat celý soubor kvůli jedné metodě, kterou nelze opravit kvůli špatnému vendor interface (např. chybějící typy).
Závěrem
Je dobré držet jednotný styl mezi projekty ve firmě. K tomu pomáhají výše zmíněné nástroje. Nahrazení jednoho nástroje za jiný je jednoduché. Oba podporují psr12. A pak už jen těžíme z benefitů.
Tak co, který nástroj používáte u vás?


Follow me!
RSS me!