关于php:Zend Framework-ErrorHandler似乎无法正常工作

关于php:Zend Framework-ErrorHandler似乎无法正常工作

Zend Framework - ErrorHandler does not seem to be working as expected

这是我第一次使用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

最后,IndexControllerindex.phtml视图确实起作用。


您有ErrorHandler.php。 它应该是ErrorController.php。 控制器都需要按照NameController.php的格式命名。 由于您没有正确命名,调度程序无法找到它。


假设您已将ErrorController插件加载到前端控制器中,请确保在引导程序中没有以下设置:

1
$frontController->throwExceptions(true);

如果设置了该值,则无论是否设置了错误控制器,都将始终引发异常。


推荐阅读