Nette Documentation Preview

syntax
Z ECS
*****

.[perex]
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
===================

```shell
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 |configuration#Cesty].
- `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 |from-php-cs-fixer] a [PHP_CodeSniffer |from-phpcs] 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.

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.