一聚教程网:一个值得你收藏的教程网站

热门教程

zfdebug调试zend framework笔记

时间:2022-07-02 10:45:44 编辑:袖梨 来源:一聚教程网

一、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


seo教程ver="showmenu({'ctrlid':this.id,'pos':'13'})" style="display: none; position: absolute"> zfdebug.gif



三、 zfdebug安装方法
下载之后的文件不能直接运行的,只能把重要的几个文件复制到自己的zf项目中,并且做些配置。
以zf1.10.0为例子。
把zfdebuglibraryzfdebug 复制到 你自己zf项目的库文件夹下面,例如:zfproject/library/zfdebug
然后打开文件zfdebugdemoszend_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,主要看libraryzfdebugcontrollerplugindebug.php 和libraryzfdebugcontrollerplugindebugplugin下面的php文件。那么你就知道zfdebug的原理和修改了。也会惊叹作者对zf内核的熟悉。

热门栏目