Zend框架-ErrorHandler似乎无法正常工作
时间:2020-03-06 14:19:31 来源:igfitidea点击:
这是我第一次使用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
我不认为这是由我本身的语法错误引起的(从教程中复制并粘贴了示例文件的内容),并且我相信我的应用程序目录结构正确:
./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
视图确实起作用。
解决方案
假设我们已将ErrorController插件加载到前端控制器中,请确保在引导程序中没有以下设置:
$frontController->throwExceptions(true);
如果设置了该值,则无论是否设置了错误控制器,都将始终引发异常。
我们有ErrorHandler.php。它应该是ErrorController.php。控制器都需要按照NameController.php的格式命名。由于我们没有正确命名,调度程序无法找到它。