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).

foto

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).

foto

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?