使用zfdebug調試zend framework

一、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內核的熟悉。
發佈了28 篇原創文章 · 獲贊 1 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章