Festlegen des PHP-Fehlerberichtswerts mit einem Konsolenparameter

10

Um meine PHP-Projekte auf Fehler zu testen, verwende ich normalerweise diesen Befehl:

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

Ich möchte das Teil php -l '{}' \;mit einigen Parametern erweitern, damit es eine benutzerdefinierte Fehlerberichterstattungsstufe verwendet und nicht die in php.ini definierte. Ist das möglich?

(Ich weiß, dass die Frage etwas mit der Codierung zu tun hat. Auf der anderen Seite geht es mehr um Shell-Befehle. Wenn Sie der Meinung sind, dass der Stapelüberlauf besser sein sollte, können Sie sie verschieben. Ich war mir nicht sicher, wo die Frage besser passt.)

Raffael Luthiger
quelle
Meinst du error_reportingLevel? Warum möchten Sie nicht den Wert in php.inioder benutzerdefiniert in PHP-Dateien selbst verwenden.
Quanten
@quanta: Ja, ich spreche von error_reporting. Entschuldigung, es war nicht klar genug. Ich ändere jetzt die Frage. Ich möchte es nicht in der php.ini ändern, da ich diese Befehlskette manchmal auch auf einem Live-Server verwende. Und das Festlegen in den Dateien selbst ist ebenfalls keine Option, da ich es in jeder Datei festlegen müsste, da der Befehl find jede Datei einzeln ausführt. Und manchmal habe ich Projekte, in denen wir externe Bibliotheken verwenden, und ich möchte sie auch gleichzeitig testen.
Raffael Luthiger

Antworten:

13

Laut php -h

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

Wenn Sie den empfohlenen Produktionsstandard (E_ALL & ~ E_DEPRECATED) möchten, wäre der Wert in PHP 5.3 22527 und in PHP 5.4+ 24575.

php -l -d error_reporting=22527

Das Finden des Werts für verschiedene Kombinationen ist einfach.

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
quelle
1
verdammt ... Ich habe ungefähr 10 Mal "php -h" gelesen, aber irgendwie sprangen meine Gedanken immer über diese Linie ... Ja, das ist es, wonach ich gesucht habe. In meinem Fall möchte ich verwenden: E_ALL | E_STRICT, das ist 32767.
Raffael Luthiger