标签:Zend Framework

自定义Zend Framework模块的异常处理

Zend Framework(ZF)可以根据业务需求配置成多模块的方式,这时我们可能需要在不同模块中采用不同的方式来处理各种错误和异常。在处理错误的时候,可以使用_forward直接跳转和显示,但是如何处理异常呢?官方手册中对此没有明确的说明。经过一番测试之后,发现可以通过以插件的方式进行处理。

比如有一个名为API的module,需要在此模块下对异常进行单独处理。我们只要在application/bootstrap.php中添加一个初始化方法,将错误处理以插件的方式注册就可以了,内容见下:

<?php
class Api_Bootstrap extends Zend_Application_Module_Bootstrap
{
	/**
	 * 注册错误处理插件,使此Module的错误处理定向到apiModule/errorController/errorAction
	 * 
	 */
	protected function _initPluginErrorHandler()
	{
		$front = Zend_Controller_Front::getInstance();
		$front->registerPlugin(new Zend_Controller_Plugin_ErrorHandler(array(
		    'module'     => 'api',
		    'controller' => 'error',
		    'action'     => 'error'
		)));
	}
	
}

此时,如果api模块下有任何异常抛出,都将使用modules/api/controllers/errorController/errorAction进行处理了~

记录Zend Framework运行时间

前几天看到有人问在Zend Framework中如何获取运行时间,如果只是用于debug,非常简单,我们只要在public/index.php中的第一行加入:

define('ZF_START_TIME', microtime(true));

最后一行加入:

echo number_format(microtime(true)-ZF_START_TIME, 8, '.', '');

这样,运行时间就会直接打印到页面的最下方。

当然,这会破坏框架的整体结构,但也是最直接,最简单的方式,debug么,嘿嘿。