J'utilise Zend Framework et je ne fais que vivre avec ce problème depuis un moment, mais c'est maintenant devenu trop agaçant, alors je vais vous envoyer la question.
Il existe certains problèmes au sein de la structure Zend que Zend peut reconnaître (comme appeler un contrôleur inexistant) et enverra ce problème à ErrorController. Je travaille bien.
Il semble y avoir quelques problèmes que Zend Framework échouera et affichera l'erreur via php, comme si une certaine fonction n'existait pas ou quelque chose du genre. Ceux que je peux voir et réparer.
Parfois, cependant, Zend n'échouera pas, mais il enverra simplement une réponse vide. Je vais avoir une page blanche. Leur mise en page n'apparaît pas, il n'y a pas de code, il n'y a rien pour me donner une idée de ce qui ne va pas. La dernière fois, il y avait un require () qui a échoué. Je devais le comprendre manuellement sans aucun retour.
Est-ce que l'un d'entre vous a vécu cela? Avez-vous des conseils sur la façon d’afficher ces erreurs? Toute aide serait appréciée!
La gestion des erreurs internes des composants MVC de la structure peut uniquement intercepter des exceptions, pas les erreurs PHP.
Pour aider au débogage pendant le développement, vous pouvez utiliser la norme:
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 'on');
De plus, si vous utilisez le nouvel autochargeur fourni avec la version 1.8, utilisez:
Zend_Loader_Autoloader::getInstance()->suppressNotFoundWarnings(false);
Pour permettre l’échec de l’inclusion/de la soumission de déclarations.
Pour les autres personnes rencontrant cette question: j'ai changé la ligne suivante dans configs/application.ini
resources.frontController.params.displayExceptions = 0
À:
resources.frontController.params.displayExceptions = 1
Cela m'a permis de voir la totalité de l'exception, y compris stacktrace.
Définissez ceci dans votre configuration:
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
Editez le fichier public/index.php.
Changez APPLICATION_ENV en 'développement'.
Cela utilisera les paramètres de développement dans votre fichier application/configs/application.ini. Ces paramètres définissent s'il faut supprimer les erreurs.
Il est trop tard pour répondre à cette question maintenant. Mais espérons que cela aidera quelqu'un d'autre ...
Il suffit de placer la fonction suivante dans votre fichier Bootstrap.php pour activer les exceptions.
protected function _initErrorDisplay(){
$frontController = Zend_Controller_Front::getInstance();
$frontController->throwExceptions(true);
}
Décision rapide et incorrecte, si aucune des méthodes déjà mentionnées ne fonctionne (utile pour les versions anciennes ou laides de ZF):
Ouvrez urproject/application/config et application.ini
ouvert
Changer la deuxième ligne:
phpSettings.display_errors = 0
à
phpSettings.display_errors = 1
Maintenant, il va afficher des erreurs.
Pour quiconque pour qui les réponses données ici n'ont pas fonctionné, on peut toujours consulter les journaux Apache pour voir une description du problème. Il serait bien sûr plus pratique que cela apparaisse sur la page, mais j’estime que c’est une alternative acceptable.
/var/log/Apache2/error.log
J'ai ce fichier ouvert avec vim et tapez: e pour actualiser et G pour aller au bas de la page pour voir l'erreur la plus récente lorsque je reçois la page blanche. Il vous indique l'heure à laquelle l'erreur s'est produite, le message et la ligne, ce qui est donc très utile.
mettre ces lignes dans application/configs/config.php
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 'on');