PHP 8.3: PHP CLI Lint (php -l) проверка нескольких файлов
php -l my-file.php
No syntax errors detected in my-file.php
До версии PHP 8.3 не было возможности проверять несколько PHP-файлов в одном вызове; независимо от количества файлов, PHP CLI проверял только первый файл:
php -l file1.php file2.php
No syntax errors detected in file1.php
Начиная с версии PHP 8.3, появилась возможность передавать несколько PHP-файлов, и PHP CLI проверяет все в одном вызове.
php -l file1.php file2.php
No syntax errors detected in file1.php
No syntax errors detected in file2.php
Если в каком-либо из предоставленных файлов линтером обнаружены ошибки, то он выдаёт ошибку и переходит к остальному списку. Если какой-либо из файлов не прошёл проверку, программа завершает работу с ошибкой.
Поддерживаются шаблоны поиска
Помимо передачи нескольких имён файлов по отдельности, можно также использовать шаблон поиска для проверки нескольких файлов:
php -l src/*.php src/**/*.php
Коды выхода
- Если какой-либо файл оказался недоступным, то код выхода будет равен
1
. - Если какой-либо из файлов не прошёл проверку, то код выхода будет равен
255
. - При наличии обоих условий ошибки код выхода будет равен
1
.
Влияние на обратную совместимость
До версии PHP 8.3 PHP CLI молча игнорировал дополнительные файлы, передаваемые на проверку. Для шаблонов поиска он использовал только первый файл.
Для PHP-приложений, работающих только на PHP 8.3+, появилась возможность быстро проверить несколько PHP-файлов или всю кодовую базу, не прибегая к многократному вызову линтера (например, командой find
) или использованию сторонних инструментов.
Сторонние инструменты, такие как php-parallel-lint/PHP-Parallel-Lint, могут обеспечить параллельную проверку, работающую на нескольких версиях PHP.