Установка значения php error_reporting с помощью параметра консоли

11

Чтобы проверить мои проекты PHP на ошибки, я обычно использую эту команду:

find ./ -type f -name \*.php -exec php -l '{}' \; | grep -v "No syntax errors detected"

Я хотел бы расширить часть php -l '{}' \;с некоторыми параметрами, чтобы он использовал собственный уровень error_reporting, а не тот, который определен в php.ini. Это возможно?

(Я знаю, что вопрос в некоторой степени связан с кодированием. С другой стороны, это больше о командах оболочки. Если вы думаете, что это должно быть лучше в стеке, то не стесняйтесь перемещать его. Я не был уверен, где вопрос подходит лучше.)

Рафаэль Лютигер
источник
Вы имеете в виду error_reportingуровень? Почему вы не хотите использовать значение в php.iniили обычай в самих файлах php.
кванты
@quanta: Да, я говорю об ошибке_отчетности. Извините, это было недостаточно ясно. Я изменил вопрос сейчас. Я не хочу менять его в php.ini, потому что иногда я использую эту цепочку команд на живом сервере. И установка его в самих файлах тоже не вариант, потому что мне пришлось бы устанавливать его в каждом файле, потому что команда find выполняет каждый файл отдельно. И иногда у меня есть проекты, в которых мы используем внешние библиотеки, и я бы тоже хотел их протестировать.
Рафаэль Лютигер

Ответы:

15

Согласно с php -h

-d foo[=bar]     Define INI entry foo with value 'bar'

Если вам нужен рекомендуемый производственный default ( E_ALL & ~E_DEPRECATED), значение будет 22527в PHP 5.3 и 24575PHP 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+
h0tw1r3
источник
1
блин ... я читал "php -h" около 10 раз, но почему-то мой разум всегда перепрыгивал через эту строку ... Да, это то, что я искал. В моем случае я хочу использовать: E_ALL | E_STRICT, который 32767.
Раффаэль Лютигер
Начиная с PHP 5.4, E_STRICTявляется частью E_ALL. И E_ALLимеет удобное значение ярлыка -1. Так что можно сделать, php -d error_reporting=-1чтобы включить все отчеты.
Мартин Прикрыл