Z ECS
ecs.php je PHP, které se musí spustit: co k převodu potřebujete mít ještě nainstalované a jak dál postupovat stejně jako u obou nástrojů pod ním.
Co je ECS
Easy Coding Standard je obálka nad PHP CS Fixerem a PHP_CodeSniffer: jedna konfigurace, jeden příkaz, pod ním oba nástroje. Přechod na DressCode je proto v jádru přechodem z těch dvou, se dvěma zvláštnostmi: konfigurace je PHP, které se spouští, a skládá se ze sad ECS, ne z jejich původních jmen.
Překlad konfigurace
vendor/bin/dresscode import ecs.php > dresscode.php
ecs.php vrací konfiguraci postavenou voláním tříd ECS, takže import ho přečte jen
v projektu, kde je symplify/easy-coding-standard ještě nainstalovaný. Překládejte, dokud tam je.
Uvnitř import najde totéž, co v konfiguracích obou nástrojů: fixery podle jména, sniffy podle jména,
jejich volby, a sady. SetList::PSR_12 se přeloží na dresscode/psr12; sady jako
SetList::COMMON, SetList::CLEAN_CODE nebo SetList::SYMPLIFY protějšek nemají,
import je ohlásí a vy začnete od dresscode/per a doplníte, na čem vám záleží. Fixer nebo sniff
bez protějšku skončí ve výpisu na chybovém výstupu.
Co přepíšete ručně:
withPaths()dopaths,withSkip()s cestami doexcludePaths,withSkip()s pravidlem a cestami doexcludeRulePaths; viz Konfigurace.withSpacing()(odsazení a konce řádků) dostyle, pokud je preset nenastaví.withCache()není potřeba, cache je zapnutá sama.
Příkazy
| ECS | DressCode |
|---|---|
ecs check src |
dresscode check src |
ecs check --fix |
dresscode fix src |
ecs check --output-format=checkstyle |
dresscode check -f checkstyle |
ecs check --output-format=json |
dresscode check -f json |
ecs check --clear-cache |
dresscode check --no-cache |
Exit kód ECS je 1 při porušení a 2 při chybě, stejně jako u DressCode. Rozdíl je jinde: ECS
dělal kontrolu a opravu jedním příkazem s přepínačem, DressCode má check a fix jako dva
příkazy se stejným výstupem.
Co je jinak
Všechno z PHP CS Fixeru a PHP_CodeSniffer zároveň: risky
pravidla nejsou risky, priority neexistují, phpcs:ignore funguje dál. Navíc odpadá jedna vrstva: ECS musel oběma
nástrojům předávat konfiguraci a slučovat jejich výstupy, a když se výsledky lišily, hledalo se, čí to je. Tady je
nástroj jeden.