Wie werden Fehler durch '@' unterdrückt?

8

Ich bin diesem verrückten Unternehmen als Site Administrator beigetreten. Jetzt habe ich einige Änderungen an meinen db-Konfigurationen vorgenommen, die sich auf die Ausführung der PHP-Skripte ausgewirkt haben.

Seltsamer Teil ist, dass PHP-Skripte einfach sterben. Sie werfen keine Fehler. Als ich in die Skripte ging, erkannte ich, dass sie die @ Fehlerunterdrückungs-Direktive verwendet haben. Jetzt ist die gesamte Codebasis Millionen von Zeilen, die über Tausende von Dateien verteilt sind, und möchte nicht etwas wie sed ausführen, um '@' zu ersetzen.

Aber '@' hat das Debugging für mich unmöglich gemacht. Es ist wie Entwickler schließen ihre Augen und finden dunkle Vision sagen ihre Nacht.

Gibt es eine Möglichkeit, die Fehlerunterdrückung, die mit '@' gemacht wurde, rückgängig zu machen und die PHP-Protokoll-Direktive behandeln zu lassen. Das Berühren der Codebasis ist keine Option. Ich freue mich auf eine Möglichkeit, dies zu tun, indem ich die PHP-Konfiguration modifiziere oder einige Zeilen in der Bootstrap-Datei hinzufüge.

    
codersofthedark 01.06.2015, 19:47
quelle

2 Antworten

5

Wenn Sie Xdebug installiert und aktiviert haben (in der Entwicklung sollten Sie dies tun), können Sie xdebug.scream Konfigurationsoption, die den @ -Operator deaktiviert.

Alternativ dazu deaktiviert die PECL-Erweiterung auch den @ -Operator (und das ist alles) .

Grundsätzlich installieren Sie die Erweiterung und setzen dann die Einstellung scream.enabled ini auf true / on.

    
Stephen 01.06.2015, 19:57
quelle
4

Stumme Fehler sind weiterhin für den über set_error_handler installierten Handler sichtbar. Sie können also einfach so etwas zu Ihrer Bootstrap-Datei hinzufügen:

%Vor%

oder, besser,

%Vor%

was auch den Stapel anzeigen würde.

    
georg 01.06.2015 20:04
quelle

Tags und Links