所以我的 Zend 框架一直拒绝处理异常,尽管我做了每个人在谷歌上建议的一切......所以我在这里问我可能做错了什么......
我在 app/modules/default/controllers 中设置了 ErrorController.php 文件,内容如下:
<?php
class ErrorController extends Zend_Controller_Action
{
public function errorAction()
{
$error = $this->_getParam('error_handler');
switch ($error->type){
case "EXCEPTION_NO_CONTROLLER":
case "EXCEPTION_NO_ACTION":
$this->getResponse()->setHttpResponseCode(404);
$this->view->title = "Page Not Found";
$this->view->message = "404 - Oops ! You took a wrong turn...";
break;
default:
$this->getResponse()->setHttpResponseCode(500);
$this->view->title = "Unexpected Error";
$this->view->headmessage = "500 - Oops ! Something wrong happened... ";
$this->view->message = $error->exception->getMessage();
break;
}
$this->view->exception = $error->exception;
// pass the request to the view
$this->view->request = $error->request;
}
}
在我的 index.php 中,我只包含 app/bootstrap.php,其中包含以下内容:
$front = Zend_Controller_Front::getInstance();
$front->throwExceptions(false);
$front->setControllerDirectory('./application/controllers');
$front->registerPlugin(new Zend_Controller_Plugin_ErrorHandler());
然而,在我调用的代码中的任何时候,例如:
throw new Zend_Controller_Exception('This page does not exist', 404);
我收到通常令人讨厌的“致命错误:未捕获的异常 'Zend_Controller_Exception' 并带有消息'此页面不存在'”,等等等等。
有什么我做错了吗?我想知道“./application/controllers”是否正确,因为据我所知,我的 Zend 框架文件夹中没有一个“应用程序”文件夹......但我在网上找不到任何关于它的信息!并创建一个将我的 ErrorController.php 放入其中使我到目前为止无处可去...