ログをFirebugのコンソールへ出力してみる(その2)

ログをFirebugのコンソールへ出力してみる。 - gounx2の日記の続き。

詳しい説明は、LoggerPublisherDD.php のヘッダ部分に記述しているのでポイントだけ書きます。

主な変更点

  • firebugが要素をソートして表示するので、順序がでたらめになる」欠点を解決しました。
  • ポップアップした別Windowに、rhacoのログ出力を行えるようにしました。

サンプル

gg-sample/LoggerPublisherDD-sample.php

<?php
include_once(dirname(__FILE__).'/../rhaco/Rhaco.php');
Rhaco::constant("LOG_DISP_LEVEL","deep_debug");
Rhaco::import('generic.Flow');
Rhaco::import('gg.util.LoggerPublisher.LoggerPublisherDD');
Rhaco::setVariable('LOGGERPUBLISHER_DD_POPUP',   true);    // or false                別Windowへ表示するか?
Rhaco::setVariable("LOGGERPUBLISHER_DD_FIREBUG", true);    // or false                Firebugのconsoleへ出力するか?
Rhaco::setVariable('LOGGERPUBLISHER_DD_STYLE',   'dbug');  // or 'var_dump' or false  出力形式

$flow = new Flow();
class Test{
    private $v_xxx = 123;
    var $v_int    = 99;
    var $v_string = "string";
    var $v_array = array(1,2,3);
    var $v_hash = array("keyA"=>111,"keyB"=>"222");
}
$o = new Test();
DD();
DD($flow); // すぐに出力するときはDD()
DD($o);    // すぐに出力するときはDD()

echo "↓ここからrhacoログ <br/>\n";
Logger::info($flow);     // 普通に書けばいい。オブジェクトなので自動で展開される。
Logger::deep_debug($o);  // 普通に書けばいい。オブジェクトなので自動で展開される。
?>

実行例

↓先のサンプルを実行すると、別Windowがポップアップして、以下が表示されます。

↓色つきの部分はクリックで展開できます。PHPソースコードも表示できます。

↓同時に、Firebugのconsoleに、以下が表示されます。

↓オブジェクトや配列はクリックで展開できます。Firebugが勝手にソートしてしまうので、名称に強引にナンバリングして、PHP上でのプロパティ(メンバ)の順を再現するようにしました。

rhacoについて

rhacoPHPフレームワークというかライブラリみたいなもの。
自作のアプリでrhacoのログ機能だけ使う。というようなこともできます。