Отображать ошибки php при использовании Zend framework

Я использую Zend Framework и просто живу с этой проблемой некоторое время, но теперь это просто слишком раздражало, поэтому я отправлю вопрос вам.

В рамках Zend есть определенные проблемы, которые Zend может распознать (например, вызвать несуществующий контроллер) и отправит эту проблему в ErrorController. У меня это нормально работает.

Похоже, что некоторые проблемы, которые Zend Framework завершит с ошибкой и отобразит ошибку через php, например, если какая-то функция не существует или что-то еще. Те, кого я вижу и исправляю.

Иногда Zend не будет терпеть неудачу, но он также просто отправит пустой ответ. Я получу пустую страницу. Они не отображаются, нет кода, нет ничего, что могло бы дать мне представление о том, что случилось не так. В прошлый раз возникла ошибка require (). Мне пришлось вручную понять это без обратной связи.

Кто-нибудь из вас испытал это? У вас есть какие-либо советы о том, как получить эти ошибки? Любая помощь будет оценена!

Внутренняя обработка ошибок компонентов MVC структуры может только ловушку Исключения, а не ошибки PHP.

Чтобы помочь в отладке во время разработки, вы можете использовать стандарт:

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

Кроме того, если вы используете новый автозагрузчик, включенный в 1.8, используйте:

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

Чтобы разрешить выдачу выписок с запросами include / require.

Для других, сталкивающихся с этим вопросом: я изменил следующую строку в configs / application.ini

 resources.frontController.params.displayExceptions = 0 

Для того, чтобы:

 resources.frontController.params.displayExceptions = 1 

Это позволило мне увидеть полное исключение, включая stacktrace.

Установите это в своей конфигурации:

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

Отредактируйте файл public / index.php.
Измените APPLICATION_ENV на «development».

Это будет использовать настройки разработки в вашем файле application / configs / application.ini. Эти настройки определяют, следует ли подавлять ошибки.

Сейчас уже поздно ответить на этот вопрос. Но надеюсь, что это поможет кому-то еще …

Просто поставьте следующую функцию в файле Bootstrap.php, чтобы включить исключения.

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

Откройте urproject / application / config и откройте application.ini
Измените вторую строку:

 phpSettings.display_errors = 0 

в

 phpSettings.display_errors = 1 

Теперь он будет отображать ошибки.

Быстрое и грязное решение, если ни один из уже упомянутых методов не работал (полезен для старой или уродливой версии ZF):

  • найдите ErrorController вашего приложения.
  • поместите вызов функции debug_print_backtrace в начале метода init (с возможностью die ())

Для тех, для кого ответы, приведенные здесь, не работают, всегда можно перейти в журналы apache, чтобы просмотреть описание проблемы. Конечно, было бы более удобно, если бы это было показано на странице, но я считаю, что это приемлемая альтернатива.

  /var/log/apache2/error.log 

У меня этот файл открыт с помощью vim и введите: e для обновления и G, чтобы перейти к нижней части страницы, чтобы увидеть самую последнюю ошибку, когда я получу пустую страницу. Он сообщает вам время возникновения ошибки, сообщение и строку, поэтому это очень полезно.

поместите эти строки в application / configs / config.php

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