Feb 24

逆引きrhaco(?)20: テンプレート内のデバッグ1 ログを使う

rhacoのテンプレートは便利なんですが
テンプレートの表示が変だったりした場合、データの確認などが大変だったりします。ループで回ってる変数の内容とか知りたいですよね!そんな時に簡単に確認する方法は「ログをテンプレートにセットしておく」です。

※追記 別にセットしなくてもログ使えるそうです!
<html>
<head>
<title>index</title>
<body>
<div><?php L::d($obj);?></div>
</body>
</html>

であっさりログ取れるそうです。riafさんご指摘ありがとうございました。


と言うわけでこの続きは見る必要無い気がしますが・・・
例えばこんな感じで使用します。

index.php
<?php
include('./__init__.php');
Rhaco::import('tag.HtmlParser');
$parser = new HtmlParser();
$parser->setVariable('obj',new Hoge());
$parser->setVariable('l',new Logger());
$parser->write('index.html');

class Hoge {
  var $a = 1;
  function add($b){
    $this->a = $this->a + $b;
    echo $this->a;
  }
}
?>


resources/templates/index.html
<html>
<head>
<title>index</title>
<body>
<div>{$l.d($obj)}</div>
</body>
</html>


こうすると
array(2) { [0]=>  string(64) ".../Rhaco.php... : eval()'d code:..." [1]=>  object(Hoge)#4 (1) { ["a"]=>  int(1) } }

というような内容が表示されます。このようにrhacoのテンプレートはオブジェクトをセットすることで、そのメソッドを自由に使えますので、チェック用のクラスを作ってみても楽しいと思います。その時は是非公開して下さい。

| comment(0)

このエントリーのはてなブックマーク (-)