Establecer el valor de informe de error de php con un parámetro de consola

10

Para probar mis proyectos PHP en errores, normalmente uso este comando:

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

Me gustaría extender la parte php -l '{}' \;con algunos parámetros para que use un nivel personalizado de informe de errores y no el definido en php.ini. es posible?

(Sé que la pregunta está relacionada con la codificación. Por otro lado, se trata más de comandos de shell. Si crees que debería ser mejor en stackoverflow, entonces no dudes en moverla. No estaba seguro de dónde encaja mejor la pregunta).

Raffael Luthiger
fuente
¿Te refieres a error_reportingnivel? ¿Por qué no quieres usar el valor php.inio personalizarlo en los archivos php?
quanta
@quanta: Sí, estoy hablando de error_reporting. Lo siento, no fue lo suficientemente claro. Ahora cambio la pregunta. No quiero cambiarlo en php.ini porque a veces también uso esta cadena de comandos en un servidor en vivo. Y configurarlo en los propios archivos tampoco es una opción porque tendría que configurarlo en cada archivo porque el comando find ejecuta cada archivo individualmente. Y a veces tengo proyectos en los que usamos bibliotecas externas y también me gustaría probarlos al mismo tiempo.
Raffael Luthiger

Respuestas:

14

De acuerdo con php -h

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

Si desea el valor predeterminado de producción recomendado (E_ALL & ~ E_DEPRECATED), el valor sería 22527 en PHP 5.3 y 24575 en PHP 5.4+.

php -l -d error_reporting=22527

Encontrar el valor para varias combinaciones es simple.

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
fuente
1
maldición ... estaba leyendo "php -h" unas 10 veces, pero de alguna manera mi mente siempre saltaba sobre esta línea ... Sí, esto es lo que estaba buscando. En mi caso quiero usar: E_ALL | E_STRICT que es 32767.
Raffael Luthiger