ZFDebug(旧略称ZF Debug Bar)を拡張してみる
symfonyにはsfWebDebugToolbarというのがあるらしいです。
どこかで見たことあるなあと思ったら、ZFDebugbarにそっくりじゃないですか!*1
symfony1.2のdebugツールバーは拡張が容易になったそうですね。
sfWebDebugToolbarを拡張してみる
http://d.hatena.ne.jp/Fivestar/20090517/1242552666
奇遇ですね!ZFDebugも拡張が容易になってます!
最新(r72)のをさっきsvn exportして試してみました。ZFDebugの配布先はgooglecodeに移行されてます。
http://code.google.com/p/zfdebug/
拡張する際はdebugバー用のプラグインインターフェイスを実装します。
<?php require_once 'ZFDebug/Controller/Plugin/Debug/Plugin/Interface.php'; require_once 'Diggin/Version.php'; class Diggin_Controller_Plugin_ZFDebugbar_Plugin_DigginVersion implements ZFDebug_Controller_Plugin_Debug_Plugin_Interface { protected $_identifier = 'diggin_version'; public function getIdentifier() { return $this->_identifier; } public function getTab() { return Diggin_Version::VERSION; } public function getPanel() { //return ''; // 空でもOK // $msg = "Diggin - Simplicity PHP library"; $msg .= "<br />since 2006"; $msg .= "<br /> checks extensions...<br />"; $msg .= extension_loaded('tidy') ? 'tidy is available' : 'tidy is not loaded!'; return $msg; } }
bootstrapなどでこんな感じで呼ぶ。
<?php protected function _initPlugin() { if ($this->getEnvironment() === 'development') { $options = array('jquery_path' => $this->frontController->getBaseUrl().'/js/jquery.min.js', ); $debugbar = new ZFDebug_Controller_Plugin_Debug($options); /** Diggin_Controller_Plugin_ZFDebugbar_Plugin_DigginVersion */ $debugbar->registerPlugin(new Diggin_Controller_Plugin_ZFDebugbar_Plugin_DigginVersion()); $this->frontController->registerPlugin($debugbar); } }
*1:苦情は受け付けますが対処しません。。