2日目helperを作ってみる
まぁテンプレートとかあったらいいよねーというわけでテンプレートエンジンについていろいろ考えてみた。
結論としては、short_opentagな(<?=みたいなやつね)素のPHPでかいたら楽だし、配布も楽かなーと妄想するわけです。
でも、smartyみたいにmodifierでチェーンとかしたい。
つまり
<?=h($str)?> 結果: '<>" <?=h($str)->u()?>エスケープしたのちURLエンコード(実際やるときは順番逆ですね) 結果: %26%23039%3B%26lt%3B%26gt%3B%26quot%3B
こんな感じにかけたらいいんじゃないかと。
というわけで作った。
http://github.com/cocoiti/cocochat/commit/b32b64c55f6605d7ee9da93fdb50b6e0596eef2c
http://github.com/cocoiti/cocochat/commit/6a64c608367e65607d6e7d875b127ca14a459c09
さーて遅延評価とかしちゃうぞーとか考えてリファクタを開始しようとおもったんですが、よく考えてみたら、Ethna(smarty)とか、symfony(素のPHP)でmodifierのチェーンどころかmodiferすらほとんどつかったことなかったので、やっぱイラネということにした。
結論: 俺だったら絶対に使わないのであとで消す
わりきりって重要よね。
ついでに
テストでこういう風にかいたんだけど__toStringされなくてこまった
<?php assert($obj === 'hoge');
こうかくといいらしい(出典自分)
<?php assert(sprintf('%s', $obj) === 'hoge');
もっといいてあったら教えてください。
PHPはもう終わり?
というのはですね、私が使ってるサーバで事故があって、いろいろとサイトを再構築していたのですが、私のことですから、
自分が PHP で書いた古い CGI が大量にあって....
というわけで、完全復旧なんてできないかも?ともなってます。で、古いCGIを復旧するためには、当然、
PEAR からライブラリを取ってきて、入れなおす
ことが必要になります。結構盛んにPHPライブラリを使って書いてましたからね....で、です。そこで気がつくのですが、
あれ....PHP ライブラリのバージョン更新があまり進んでない.....
ということなんですね。たとえば、用途から考えて、現役でちゃんとメンテされているに決まっている XML_RSS あたりを基準に考えると、
2006-09-14.......
(以下略)
まぁZend_Rssとかつかうといいと思う。
あわせて読みたい:
http://d.hatena.ne.jp/Yoshiori/20090219/1235031826
http://blog.pasonatech.co.jp/sugiura/9524.html