Zend Framework 入门——错误处理_PHP教程
推荐:Zend Framework 入门——多国语言支持如果你的项目想要支持多语言版本,那么就需要用到 Zend_Translate。Zend_Translate 的详细文档在这里,不过如果想偷懒的话,也很简单,在 View Helpers 文档中介绍了如何用 Translate Helper
使用 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() |
在 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 Framework 入门——页面布局
分享:Zend Framework 入门——快速上手1. 安装 从 Zend Framework 的网页上下载最新版本。解压后,把整个目录拷贝到一个理想的地方,比如:/php/library/Zend。 打开 php.ini 文件,确认包含 Zend 目录的路径在 include_path 里
- 相关链接:
- 教程说明:
PHP教程-Zend Framework 入门——错误处理。