Nette Code Checker

Code Checker проверява изходните ви файлове за формални недостатъци като невидим BOM, контролни знаци, повредено кодиране или невалиден синтаксис на PHP, Latte, NEON, JSON и YAML файлове и може да ги поправи автоматично.

Инсталация

Инсталирайте го глобално чрез Composer:

composer global require nette/code-checker

Уверете се, че глобалната ви Composer директория bin е във вашия $PATH. Командата code-checker след това е достъпна отвсякъде, на всяка операционна система.

Като алтернатива го инсталирайте като самостоятелен проект:

composer create-project nette/code-checker

Изисква PHP 8.0 или по-нова версия.

Използване

По подразбиране Code Checker работи в режим само за четене и само докладва намерените проблеми:

code-checker

За да поправите файловете реално, добавете --fix. Първо архивирайте файловете си или го стартирайте върху чисто работно дърво, за да можете после да прегледате промените с git diff:

code-checker --fix

Можете да ограничите сканирането до конкретен път, да пропуснете файлове или да стартирате по-бърза проверка само на синтаксиса:

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

В режим само за четене инструментът завършва с код 0, когато всичко е наред, и 1, когато бъде намерен какъвто и да е проблем, така че се вписва чудесно в CI процесите.

Пълен списък на опциите:

Usage: code-checker [options]

Options:
	-d <path>             Folder or file to scan (default: current directory)
	-i | --ignore <mask>  Files to ignore
	-f | --fix            Fix the files
	-l | --eol            Normalize line endings to the system default
	--only-syntax         Check syntax only (faster)
	--no-progress         Do not show progress dots
	--version             Show version

Какво прави Code Checker

  • проверява синтаксиса на Latte шаблони и файлове .php, .neon и .json
  • премахва BOM
  • проверява дали файловете са валиден UTF-8
  • проверява за контролни знаци
  • разпознава неправилно записани phpDoc коментари (напр. /* @var вместо /** @var)
  • налага отстъп с табулатори във файлове PHP, CSS, JS и TS и с интервали в YAML
  • премахва интервалите в края на редовете и празните редове в края на файловете
  • нормализира разделителите на редове към системните (с опцията -l)