SourceForge.jp

TemplateparserComponent

Creator:mocapapa   Created:2008-12-12

CIにはTemplateparserクラスというパーサがあり、Smartyをインストールするまでも無いような簡単な変換ができます。

{hensu}

とhtml中に書くと、

<?php print $hensu; ?>

相当の動作をします。

ということで、Templateparserコンポーネントを作ってみました。

が、以下の理由で公開をためらっています。

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

誰かもっと良いコンポーネントを作ってくれないでしょうか?

Project site