Configurando o valor php error_reporting com um parâmetro do console


10

Para testar meus projetos PHP quanto a erros, normalmente uso este comando:

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

Gostaria de estender a parte php -l '{}' \;com alguns parâmetros para que ele use um nível de error_reporting personalizado e não o definido no php.ini. Isso é possível?

(Eu sei que a pergunta está um pouco relacionada à codificação. Por outro lado, trata-se mais de comandos do shell. Se você acha que deveria ser melhor no stackoverflow, sinta-se à vontade para movê-la. Não sabia ao certo onde a pergunta se encaixa melhor.)


Você quer dizer error_reportingnível? Por que você não deseja usar o valor php.iniou o costume nos próprios arquivos php.
quanta 27/07

@quanta: Sim, estou falando de reportagem de erros. Desculpe, não estava claro o suficiente. Eu mudo a pergunta agora. Não quero alterá-lo no php.ini porque às vezes uso essa cadeia de comandos em um servidor ativo. E configurá-lo nos próprios arquivos também não é uma opção, porque eu precisaria defini-lo em todos os arquivos, porque o comando find executa cada arquivo individualmente. E às vezes tenho projetos em que usamos bibliotecas externas e gostaria de testá-las ao mesmo tempo.
Raffael Luthiger

Respostas:


14

De acordo com php -h

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

Se você deseja o padrão de produção recomendado (E_ALL & ~ E_DEPRECATED), o valor seria 22527 no PHP 5.3 e 24575 no PHP 5.4+.

php -l -d error_reporting=22527

Encontrar o valor para várias combinações é simples.

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+

1
caramba ... eu estava lendo "php -h" cerca de 10 vezes, mas de alguma forma minha mente estava sempre pulando nessa linha .... Sim, era isso que eu estava procurando. No meu caso, quero usar: E_ALL | E_STRICT que é 32767.
Raffael Luthiger
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.