Nette Code Checker

Code Checker zkontroluje vaše zdrojové soubory a najde v nich formální nedostatky, jako je neviditelný BOM, kontrolní znaky, chybné kódování nebo neplatná syntaxe souborů PHP, Latte, NEON a JSON, a umí je automaticky opravit.

Instalace

Nainstalujte jej globálně pomocí Composeru:

composer global require nette/code-checker

Ujistěte se, že váš globální Composer adresář bin je v proměnné $PATH. Příkaz code-checker je pak dostupný odkudkoliv, na libovolném operačním systému.

Případně jej nainstalujte jako samostatný projekt:

composer create-project nette/code-checker

Vyžaduje PHP 8.2 nebo vyšší.

Použití

Ve výchozím stavu běží Code Checker v read-only režimu a jen vypíše nalezené problémy:

code-checker

Pro skutečnou opravu souborů přidejte --fix. Nejdřív si soubory zazálohujte, nebo nástroj spusťte nad čistým pracovním stromem, ať si změny můžete potom zkontrolovat přes git diff:

code-checker --fix

Sken můžete omezit na konkrétní cesty (pro každou z nich zopakujte -d), vynechat soubory nebo spustit rychlejší kontrolu jen syntaxe:

code-checker -d src -d tests --ignore "temp/*"
code-checker --only-syntax

V read-only režimu skončí nástroj s kódem 0, když je vše v pořádku, a 1, když najde jakoukoli chybu nebo opravitelný nedostatek, takže se hodí do CI.

Kompletní seznam voleb:

Usage: php code-checker [options]

Options:
  -d <path>...            Folder or file to scan (default: current directory)
  -i, --ignore <mask>...  Files to ignore
  -f, --fix               Fixes files
  -l, --eol               Convert newline characters
  --only-syntax           Check only syntax
  --no-progress           Do not show progress dots
  --version               Show version
  -h, --help              Print this help

Co Code Checker dělá

  • kontroluje syntaxi Latte šablon a souborů .php, .neon a .json
  • odstraňuje BOM
  • ověřuje, že soubory jsou platné UTF-8
  • kontroluje výskyt kontrolních znaků
  • převádí odsazení mezerami na tabulátory v souborech CSS, LESS, JS, TS a JSON a šířku odsazení si zjistí sám (soubor s nekonzistentním odsazením jen nahlásí a nechá beze změny)
  • kontroluje, že soubory YAML jsou odsazené mezerami
  • odstraňuje koncové mezery a prázdné řádky na konci souborů
  • normalizuje oddělovače řádků na systémové (s volbou -l)

Styl PHP kódu

Na styl PHP kódu Code Checker nesahá, to je práce pro DressCode. Ten kontroluje a opravuje PHP kód podle standardu, který si zvolíte (PER Coding Style, PSR-12, Nette, Symfony nebo Laravel), mění přitom jen to, co opravuje, a umí kód rovnou převést na novější verzi PHP i na nové verze knihoven. Převzal také PHP kontroly, které dělaly starší verze Code Checkeru: chybně zapsané phpDoc komentáře, chybějící declare(strict_types=1) a odsazení mezerami v souborech PHP.