肉とビールとパンケーキ by @sotarok

少し大人になった「肉とご飯と甘いもの」

Ethna_Plugin_Debugtoolbar 0.9.0 をリリース


しました。
Ethna 2.5.0 preview 5 で導入された、プラグインの新しい仕組みにより、Openpear 経由(というか、PEAR経由)でプラグインをインストールし、簡単に読み込ませることができるようになりました。


※ちなみに、このパッケージは、「Ether_Suite」の後継です。名前をわかりやすくして、仕切り直しました。

  • symfony風のデバッグツールバーを画面上に表示します
  • いまのところ
    • ログ
    • ActionForm
    • 環境(Info)
    • Config
    • SmartyDebug出力

にのみ対応。あ、ExecutionTime もローカルでは対応してあるんですが。。

というか、リリース版にSmartyDebug用のテンプレートを詰めるのわすれたので、SmartyDebugも無いなw
まあ多分次のリリースんときには入れます。とりあえずログとActionFormだけでも結構役に立つよねってことで。


How to Install

Ethnaプロジェクトディレクトリに移動し、pear-local コマンドをつかって、Openpear からインストールします。

% cd PROJECT_DIR
% ethna pear-local channel-discover openpear.org
% ethna pear-local install openpaer/Ethna_Plugin_Debugtoolbar
downloading Ethna_Plugin_Debugtoolbar-0.9.0.tgz ...
Starting to download Ethna_Plugin_Debugtoolbar-0.9.0.tgz (12,157 bytes)
.....done: 12,157 bytes
install-all ok: channel://openpear.org/Ethna_Plugin_Debugtoolbar-0.9.0
% cd www
% ln -s ../lib/.pear/data/Ethna_Plugin_Debugtoolbar/data/www ./Debugtoolbar

最後のは、ウェブのディレクトリ上に、画像、css、jsがおいてあるdataディレクトリへシンボリックリンクを張っています。

インストール後にhookしてなにかする(symfonyのtask?)みたいなものはまだEthnaに実装されていないので、リンクは自分で張ってください。


ちなみに、pear-local で入る lib 以下のディレクトリに Ethna が入っていない場合は、依存エラーになります。
その場合は、「ethna pear-local install openpaer/Ethna_Plugin_Debugtoolbar」を実行する前に、

% ethna pear-local channel-discover pear.ethna.jp
% ethna pear-local install -a http://pear.ethna.jp/pear/Ethna-2.5.2009062201.tgz

のようにして、lib以下にEthnaをおいてください。

Requirement


最近リリースされた、Preview 版のプラグイン読み込み機構を利用していますので、Preview 版が必要です。

How to Use

変更するファイルは2カ所です。

app/PROJECT_Controller.php 。フィルタで「Debugtoolbar」を利用します。

<?php
// ...(snip)...
    var $filter = array(
        /*  
         *  TODO: when you use filter, write filter plugin name here.
         *  (If you specify class name, Ethna reads filter class in-
         *   filter directory)
         *
         *  Example:
         *
         *  'ExecutionTime',
         */
         'Debugtoolbar',
    );  
// ...(snip)...


etc/project-ini.php。ログ出力の方法を変更します。

<?php
$config = array(
// ...(snip)...
    // log
    // sample-1: sigile facility
    'log_facility'          => 'debugtoolbar',
    'log_level'             => 'debug',
    'log_option'            => 'pid,function,pos',
    'log_filter_do'         => '', 
    'log_filter_ignore'     => 'Undefined index.*%%.*tpl',
// ...(snip)...

Screenshot

Screenshot !
Deadlinetimer.com の開発サーバ上での画面。


右上に、こんなのが表示されます。


ActionFormのデバッグもラクチン。


ログ見るのも楽。

もしかしたら

  • まだ不具合あるかもなので、試した方いたら感想いただけるとたすかります。
  • dataディレクトリ data/Ethan_Plugin_Debugtoolbar/data になるのいやだよね
  • jQuery つかってて、noConflictしてるのが原因でほげほげなる可能性もあり。その場合はどうしたらいいんだ?