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() do paths, withSkip() s cestami do excludePaths, withSkip() s pravidlem a cestami do excludeRulePaths; viz Konfigurace.
  • withSpacing() (odsazení a konce řádků) do style, 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.

verze: 1.0