Définition de la valeur php error_reporting avec un paramètre de console

10

Afin de tester mes projets PHP sur les erreurs, j'utilise normalement cette commande:

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

Je voudrais étendre la partie php -l '{}' \;avec certains paramètres afin qu'elle utilise un niveau d'erreur_reporting personnalisé et non celui défini dans php.ini. Est-ce possible?

(Je sais que la question est quelque peu liée au codage. De l'autre côté, il s'agit plus de commandes shell. Si vous pensez que cela devrait être mieux sur stackoverflow alors n'hésitez pas à le déplacer. Je ne savais pas où la question s'adapte mieux.)

Raffael Luthiger
la source
Voulez-vous dire le error_reportingniveau? Pourquoi ne voulez-vous pas utiliser la valeur dans php.iniou les fichiers php personnalisés eux-mêmes?
quanta
@quanta: Oui, je parle de error_reporting. Désolé, ce n'était pas assez clair. Je change la question maintenant. Je ne veux pas le changer dans php.ini car j'utilise parfois cette chaîne de commande sur un serveur en direct également. Et le définir dans les fichiers eux-mêmes n'est pas une option non plus car je devrais le définir dans chaque fichier car la commande find exécute chaque fichier individuellement. Et j'ai parfois des projets où nous utilisons des bibliothèques externes et je voudrais les tester en même temps.
Raffael Luthiger

Réponses:

14

Selon php -h

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

Si vous voulez la valeur de production recommandée par défaut (E_ALL & ~ E_DEPRECATED), la valeur serait 22527 en PHP 5.3 et 24575 en PHP 5.4+.

php -l -d error_reporting=22527

Trouver la valeur de diverses combinaisons est 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
la source
1
putain ... Je lisais "php -h" environ 10 fois mais d'une manière ou d'une autre mon esprit sautait toujours sur cette ligne .... Oui, c'est ce que je cherchais. Dans mon cas, je veux utiliser: E_ALL | E_STRICT qui est 32767.
Raffael Luthiger