Zend Framework - ErrorHandler не работает должным образом - PullRequest
4 голосов
/ 18 сентября 2008

Это мой первый опыт использования Zend Framework. Я пытаюсь следовать учебному пособию Quick Start . Все работало как ожидалось, пока я не дошел до раздела Error Controller и View . Когда я перехожу на страницу, которая не существует, вместо того, чтобы получить страницу с ошибкой, я получаю дамп экрана Fatal Error (во всей красе):

Неустранимая ошибка: необработанное исключение 'Zend_Controller_Dispatcher_Exception' с сообщением «Указан неверный контроллер (ошибка)» в /home/.fantasia/bcnewman/foo.com/library/Zend/Controller/Dispatcher/Standard.php:249 Трассировка стека: # 0 /home/.fantasia/bcnewman/foo.com/library/Zend/Controller/Front.php(946): Zend_Controller_Dispatcher_Standard-> отправка (Object (Zend_Controller_Request_Http), Объект (Zend_Controller_Response_Http)) # 1 /home/.fantasia/bcnewman/foo.com/public/index.php(42): Zend_Controller_Front-> dispatch () # 2 {main} добавляется /home/.fantasia/bcnewman/foo.com/library/Zend/Controller/Dispatcher/Standard.php по линии 249

Я не верю, что это вызвано синтаксической ошибкой с моей стороны (скопировал и вставил содержимое файла примера из учебника), и я считаю, что у меня правильная структура каталога приложения:

./application
./application/controllers
./application/controllers/IndexController.php
./application/controllers/ErrorHandler.php
./application/views
./application/views/scripts
./application/views/scripts/index
./application/views/scripts/index/index.phtml
./application/views/scripts/error
./application/views/scripts/error/error.phtml
./application/bootstrap.php
./public
./public/index.php

И наконец, представления IndexController и index.phtml работают.

Ответы [ 2 ]

4 голосов
/ 18 сентября 2008

У вас есть ErrorHandler.php. Это должен быть ErrorController.php. Все контроллеры должны быть названы в соответствии с форматом NameController.php. Поскольку у вас нет правильного имени, диспетчер не может его найти.

2 голосов
/ 18 сентября 2008

Предполагая, что у вас есть плагин ErrorController, загруженный в ваш фронт-контроллер, убедитесь, что в вашей загрузочной системе нет следующего набора:

$frontController->throwExceptions(true);

Если этот параметр установлен, исключения будут всегда , независимо от того, установлен ли у вас контроллер ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...