TemplateparserComponent
CIにはTemplateparserクラスというパーサがあり、Smartyをインストールするまでも無いような簡単な変換ができます。
{hensu}
とhtml中に書くと、
<?php print $hensu; ?>
相当の動作をします。
ということで、Templateparserコンポーネントを作ってみました。
が、以下の理由で公開をためらっています。
- ちいたんの元の動作が、CIのようにoutputメソッドとなってなく、最後にrequire_onceしているため、それを変更しようとするとファイルに落としてrequire_onceするしかない?とりあえず、cacheディレクトリを作り、そこにパースしたファイルを置くようにした。
- 擬似変数をどこで登録するか?ちいたんにはCIにあるようなコントローラクラスの初期化が無いため、共通のphpとしてはconfig.phpかcheetan.phpしかない。config.phpにはいろいろなコールバックが書けるようだが、config_controller()内に書けばいいのかも。
- その書き方だが、本来はセット関数でセットすべきかもしれないが、とりあえずコントローラ内の擬似変数アレイを仮定し($controller->pv)、そのアレイに基づいて擬似変数のリプレースを行うものと、とりあえずしている。
- CViewの継承をコンポーネント定義のファイル中で行っている。configが汚くなるため。これでも動作するが、ファイル位置が問題。view/templateファイルの位置がcomponent起点となる。これはあまりうまくないため、compnent起点+”/../”でひとつ上げているが汚い。
誰かもっと良いコンポーネントを作ってくれないでしょうか?
Project site
|