一、zfdbug简介:
zend
framework
项目
开发过程中,测试是无处不在的,但zend framework测试非常麻烦。因此就有老外写了一个zf的debug
插件,
功能非常全面(
文件,内存,
数据,
缓存,
变量,运行
时间,异常),它能展示我们平时看不到的
系统信息对我们快速定位问题,提高系统的性能,安全性等都有很大的帮助。
有了zfdebug,以后使用zend framework开发项目,调试再无烦恼。
二、zfdebug的官方
地址:
http://code.google.com/p/zfdebug/
下载地址:
http://code.google.com/p/zfdebug/downloads/list
三、 zfdebug安装方法
下载之后的文件不能直接运行的,只能把重要的几个文件复制到自己的zf项目中,并且做些配置。
以zf1.10.0为例子。
把zfdebug/library/ZFDebug 复制到 你自己zf项目的库文件夹下面,例如:zfproject/library/ZFDebug
然后打开文件zfdebug/demos/
Zend_Application_Bootstrap.php 复制里面的protected function _initZFDebug()全部
代码到你项目的
Bootstrap.php里面。
这样就能看到zfdebug
效果了。
(zfdebug的图片不需要复制,因为zfdebug里面已经把zfdebug的图片写成数据流的方式来显示了)
四、灵活的使用zfdebug
但在实际的使用过程中还要注意下面几点,
1.默认的情况下zfdebug只显示三项的调试信息,如果要想显示更多的调试信息类型,就要修改
你项目的Bootstrap.php的_initZFDebug的内容。
例如:
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace('ZFDebug');
$db = Zend_Registry::get ( 'db');
$options = array(
'plugins' => array('Variables',
'Database' => array('adapter' => $db),
'Html',
'File' => array('base_path' => MYWEB_ROOT_DIR),
'Memory',
'Time',
'Registry',
'Exception'),
);
2.调试信息在项目开发过程中要用到,实际使用时就关闭的,所以应该在配置文件application.ini里面加上zfdebug开关的配置。
例如 zfdebug.open = 1
那么在_initZFDebug()中就可以根据这个值来是否执行zfdebug了。
3.默认情况下,zfdebug使用的js文件是
http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js,也就是说如果在不能访问外网的情况下,zfdebug的结果栏是可以显示出来,但点击之后会有js错误。
解决的办法是修改_initZFDebug()的jquery_path变量。
$options = array(
'plugins' => array('Variables',
'Database' => array('adapter' => $db),
'Html',
'File' => array('base_path' => MYWEB_ROOT_DIR),
'Memory',
'Time',
'Registry',
'Exception'),
'jquery_path'=>"http://lcoalhost/zfproject/templates/default/js/jquery.min.js"
);
4)也是js的问题。一般的情况下zfdebug很好的运作,但实际使用中,很有可能zfdebug的jquery.min.js和你项目的js有冲突。确实是个头痛的问题。
我解决的办法是修改zfdebug的核心文件,使zfdebug的结果在iframe的另外一个窗口显示,这样就避免了js冲突的问题。
要深入研究zfdebug,主要看library/ZFDebug/Controller/Plugin/Debug.php 和library/ZFDebug/Controller/Plugin/Debug/Plugin下面的php文件。那么你就知道zfdebug的原理和修改了。也会惊叹作者对zf内核的熟悉。