Zend Framework 入门——错误处理
来源:互联网 发布:uefi双硬盘安装ubuntu 编辑:程序博客网 时间:2024/06/04 18:12
Zend Framework 入门——错误处理
百度权重查询 站长交易 友情链接交换 网站监控 服务器监控 SEO监控
使用 Zend Framework 的 MVC 结构,如果不做特殊的处理,所有的异常都会被前端控制器捕获,并累积起来。
Zend Framework 提供了若干种方法来处理异常。这里介绍最简单的一种。
在第一部分《快速上手》中,我们已经有了一个很简单的错误处理机制,即通过 applicatoin/controllers/ErrorController.php 以及其中定义的 errorAction 方法来处理异常。不过,只是给出了一个很简陋的报错信息。现在,我们把它再完善一下,达到两个基本要求:
- 用户请求了不存在的控制器或动作(404 错误),在用户的浏览器中给出报错信息;
- 其他的系统错误,则在日志文件中记录下来。
1. 创建日志
创建一个与 application 平行的文件夹,命名为 logs。
编辑 html/index.php 文件,加入下面的代码:
require_once 'Zend/Log.php';require_once 'Zend/Log/Writer/Stream.php';
$log = new Zend_Log(new Zend_Log_Writer_Stream($rootPath . '/logs/errors.log', 'a+'));
Zend_Registry::set('error_log', $log);
注意:Web 服务器应具有对 logs 文件夹的读写权限。
2. 完善错误处理代码
编辑 application/controllers/ErrorController.php 文件,新的 errrorAction 方法为:
public function errorAction()
{
$log = Zend_Registry::get('error_log');
$content = null;
$errors = $this->_getParam ('error_handler') ;
switch ($errors->type) {
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER :
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION :
// 404 error -- controller or action not found
$this->getResponse ()->setRawHeader ( 'HTTP/1.1 404 Not Found' ) ;
// ... get some output to display...
$content = "error_page_not_found"$$
break ;
default :
// application error; display error page, but don't change
// status code
$content = "error_unexpected"$$
// ...
// Log the exception
$exception = $errors->exception;
$log->debug($exception->getMessage() .
PHP_EOL . $exception->getTraceAsString());
break ;
}
// Clear previous content
$this->getResponse()->clearBody();
$this->view->content = $content;
}
在 languages/zh_cn.php 中加入错误信息的中文条目(如果你不需要支持多国语言,那么可以忽略这些):
'error_page_not_found' => "<h1>404 错误:页面不存在!</h1>" . PHP_EOL .'<p>对不起,您所要求的页面不存在。</p>',
'error_unexpected' => '<h1>错误!</h1>' . PHP_EOL .
'<p>对不起,系统无法响应您的请求。请稍后再试。</p>',
最后,略微修改一下 application/views/error/error.phtml 文件:
其中的错误显示代码为:
<?php echo $this->translate($this->content); ?>- Zend Framework 入门——错误处理
- Zend Framework学习 之错误处理
- Zend Framework-Zend_Controller入门
- Zend Framework入门指引
- Zend Framework入门指引
- Zend Framework入门
- Zend Framework入门教材
- 菜鸟入门zend framework;
- zend framework入门(1)
- zend framework入门2
- zend framework入门3
- Zend Framework 入门
- zend framework 开启错误提示
- php之zend framework入门
- Zend Framework教程-入门相关
- zend framework 入门好文章
- Zend Framework教程-入门相关
- Zend Framework—Zend_Controller工作原理简介
- android Camera 如何判断当前使用的摄像头是前置还是后置
- 黑马程序员_数据库连接Class.forName的作用
- 使用Qt实现简单的图片预览效果
- Spring MVC "The request sent by the client was syntactically incorrect ()"解决办法
- jsp面试基础速成精华讲解
- Zend Framework 入门——错误处理
- java JList 添加数据后,如何更新啊
- Boost.smart_ptr.shared_ptr--2
- Delphi 中的自定义类笔记
- 经典Sql面试题收集!!
- 文件选择对话框filedialog,OpenFileDialog,FolderBrowserDialog
- 关于Excel导入的问题记录
- Java 中的堆和栈
- 嵌套For循环性能优化案例