Я использую 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):
Для тех, для кого ответы, приведенные здесь, не работают, всегда можно перейти в журналы apache, чтобы просмотреть описание проблемы. Конечно, было бы более удобно, если бы это было показано на странице, но я считаю, что это приемлемая альтернатива.
/var/log/apache2/error.log
У меня этот файл открыт с помощью vim и введите: e для обновления и G, чтобы перейти к нижней части страницы, чтобы увидеть самую последнюю ошибку, когда я получу пустую страницу. Он сообщает вам время возникновения ошибки, сообщение и строку, поэтому это очень полезно.
поместите эти строки в application / configs / config.php
error_reporting(E_ALL|E_STRICT); ini_set('display_errors', 'on');