Aug 20

逆引きrhaco45: テンプレートのパース結果を表示せず内部で処理したい場合

snippet rhaco | comment(0)

テンプレートをパースした結果を表示するには

$flow = new Flow();
$flow->write('hoge.html');
$parser = Urls::parse(array('^$'=>array('method'=>'read')));
$parser->write();

が良く用いられますが、パース結果をプログラム中で使用したい場合は使えません。

その場合は1.5.0までは
$flow = new Flow();
$parsed = $flow->read('hoge.html');

と出来ます。1.6.0以降は使えませんので、HtmlParserのreadメソッドを使うことになります。
$flow = new Flow();
$parser = $flow->parser();
$parsed = $parser->read('hoge.html');
//PHP5なら
$parsed = $flow->parser()->read('hoge.html');
//あまり使いませんがHtmlParserなら
$parser = new HtmlParser();
$parsed = $parser->read('hoge.html');

Aug 12

逆引きrhaco44: Q::gt(A,B)と書いた時どっちよりどっちが大きいのか忘れそうな時に使うメソッド

rhaco snippet | comment(0)

rhacoのCriterionには逆引き37で説明したように各種あるのですが、英語っぽく書かれたメソッドよりよりsql自体で書く時のように演算子で書いた方が分かり易いと思われる方も居ると思います。その場合にrhacoでは演算子を使ったCriterionが用意されています。

Criterion::comp(A,比較演算子,B)

というメソッドです。比較演算子としては
=,==,!=,<>,>,<,>=,<=

を使用出来ます。
例えば
Criterion::less(Product::columnId(),10);

と書いていた内容が
Criterion::comp(Product::columnId(),'<',10);

とも書けます。

少々文字数が増えますが、直感的に読めて読みやすいと思います。好みによってこういう書き方も出来ますという話でした。