这是我第一次使用Zend Framework。 我正在尝试遵循快速入门教程。 一切都按预期进行,直到到达"错误控制器和视图"部分。 当我导航到一个不存在的页面时,没有收到错误页面,而是出现了致命错误屏幕转储(全部荣耀):
Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception'
with message 'Invalid controller specified (error)' in
/home/.fantasia/bcnewman/foo.com/library/Zend/Controller/Dispatcher/Standard.php:249
Stack trace: #0
/home/.fantasia/bcnewman/foo.com/library/Zend/Controller/Front.php(946):
Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http),
Object(Zend_Controller_Response_Http)) #1
/home/.fantasia/bcnewman/foo.com/public/index.php(42):
Zend_Controller_Front->dispatch() #2 {main} thrown in
/home/.fantasia/bcnewman/foo.com/library/Zend/Controller/Dispatcher/Standard.php
on line 249
我不认为这是由我本身的语法错误引起的(从教程中复制并粘贴了示例文件的内容),并且我相信我的应用程序目录结构正确:
1 2 3 4 5 6 7 8 9 10 11 12 13
| ./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视图确实起作用。
您有ErrorHandler.php。 它应该是ErrorController.php。 控制器都需要按照NameController.php的格式命名。 由于您没有正确命名,调度程序无法找到它。
假设您已将ErrorController插件加载到前端控制器中,请确保在引导程序中没有以下设置:
1
| $frontController->throwExceptions(true); |
如果设置了该值,则无论是否设置了错误控制器,都将始终引发异常。