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)