Чтобы проверить мои проекты PHP на наличие ошибок, я обычно использую эту команду:
find ./ -type f -name \*.php -exec php -l '{}' \; | grep -v "No syntax errors detected"
Я хотел бы продлить часть php -l '{}' \;
с некоторыми параметрами, поэтому будет использоваться пользовательский уровень error_reporting, а не тот, который определен в php.ini. Это возможно?
(Я знаю, что вопрос в некоторой степени связан с кодированием. С другой стороны, это больше касается команд оболочки. Если вы считаете, что в stackoverflow должно быть лучше, не стесняйтесь перемещать его. Я не был уверен, где вопрос лучше подходит.)
В соответствии с php -h
-d foo[=bar] Define INI entry foo with value 'bar'
Если вы хотите, чтобы рекомендованная производственная среда по умолчанию (E_ALL & ~E_DEPRECATED
) значение будет 22527
в PHP 5.3 и 24575
в PHP 5.4+.
php -l -d error_reporting=22527
Найти значение для различных комбинаций просто.
php -r 'echo E_ALL & ~E_NOTICE | E_STRICT;' # should return 32759
php -r 'echo E_ALL & ~E_DEPRECATED;' # should return 22527 in PHP 5.3, 24575 in PHP 5.4+