25 Stimmen

Anzeige von php-Fehlern bei Verwendung des Zend-Frameworks

Ich habe mit Zend Framework und gerade leben mit diesem Problem für eine Weile, aber es ist jetzt einfach zu ärgerlich geworden, so dass ich die Frage an Sie senden.

Es gibt bestimmte Probleme innerhalb des Zend-Frameworks, die Zend erkennen kann (wie z.B. der Aufruf eines nicht existierenden Controllers), und dieses Problem an den ErrorController sendet. Ich habe das gut hinbekommen.

Es scheint einige Probleme zu geben, dass Zend Framework fehlschlägt und den Fehler über php anzeigt, z.B. wenn eine bestimmte Funktion nicht existiert oder so. Diese kann ich sehen und beheben.

Manchmal schlägt Zend jedoch nicht fehl, aber es sendet auch einfach eine leere Antwort. Ich werde eine leere Seite erhalten. Das Layout wird nicht angezeigt, es gibt keinen Code, es gibt nichts, was mir eine Vorstellung davon gibt, was schief gelaufen ist. Beim letzten Mal war ein require() fehlgeschlagen. Ich musste das manuell herausfinden und bekam keine Rückmeldung.

Hat jemand von Ihnen diese Erfahrung gemacht? Haben Sie einen Rat, wie man diese Fehler anzeigen lassen kann? Für jede Hilfe wären wir dankbar!

32voto

jason Punkte 8848

Die interne Fehlerbehandlung der MVC-Komponenten des Frameworks kann nur Exceptions und keine PHP-Fehler abfangen.

Um die Fehlersuche während der Entwicklung zu unterstützen, können Sie den Standard verwenden:

error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 'on');

Wenn Sie den neuen Autoloader verwenden, der in 1.8 enthalten ist, sollten Sie ihn ebenfalls benutzen:

Zend_Loader_Autoloader::getInstance()->suppressNotFoundWarnings(false);

Damit fehlgeschlagene include/require-Anweisungen ausgegeben werden können.

12voto

Niels Bom Punkte 7982

Für andere, die auf diese Frage stoßen: Ich habe die folgende Zeile in configs/application.ini geändert

resources.frontController.params.displayExceptions = 0

An:

resources.frontController.params.displayExceptions = 1

Auf diese Weise konnte ich die vollständige Ausnahme, einschließlich Stacktrace, sehen.

12voto

Kamilos Punkte 755

Stellen Sie dies in Ihrer Konfiguration ein:

phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

8voto

Brian Punkte 81

Bearbeiten Sie die Datei public/index.php.
Ändern Sie die APPLICATION_ENV in 'development'.

Dabei werden die Entwicklungseinstellungen in Ihrer Datei application/configs/application.ini verwendet. Diese Einstellungen legen fest, ob Fehler unterdrückt werden sollen.

6voto

Jay Bhatt Punkte 5455

Es ist zu spät, diese Frage jetzt zu beantworten. Aber ich hoffe, dass es jemand anderem helfen wird...

Fügen Sie einfach die folgende Funktion in Ihre Bootstrap.php-Datei ein, um Ausnahmen zu aktivieren.

protected function _initErrorDisplay(){
        $frontController = Zend_Controller_Front::getInstance();
        $frontController->throwExceptions(true);
    }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X