テンプレートエンジン

Mapleでのテンプレートエンジンの使い方は普通にテンプレートエンジンをつかうというものとは発想を逆転したいというのがある。

通常テンプレートエンジンはプログラム側から処理結果をセットするという感覚だが、MapleではActionで何らかのビジネスロジックを動かしてその結果をActionに保持し、テンプレートエンジン側からActionに保持されている内容を取り出しにくるというもの。テンプレートファイルに対して値をプッシュするというより、テンプレートファイルから値をプルするという感じ。

なので、今のサンプルをみてもらうと、「{action->getName}」という記述方法になっています。これが式言語で「{action.name}」とかけるといいなーと思っています。

また、Smartyを使っている限り、デザイナーとプログラマーとの可逆なやりとり、つまりデザイナーからわたされたものをプログラマーが編集して、しばらくたってデザイナーにもどすということを行うとデザイナーかプログラマーのどちらか(もしくは両方)にストレスをかけることになる。

なので、別のテンプレートエンジンが必要だなと思っています(phpTalをつかうといい線いくとは思うのですがなじめない・・・)。私的にどうしても必要な機能は以下のものです。

  1. プレビュー時にダミーの値を表示できる
  2. タグに対する操作をタグ自体にも記述できるし、マークとなる属性を記述して操作を設定ファイルに外だしにもできるようにする。
  3. よく使うものをコンポーネント化できるようにする

また、テンプレートエンジンが行う処理において「タグに対する操作の決定」と「操作で使用する値の決定」との2つを完全に独立させたいというのがあります。あるタグに対して指定した置換えを行うという「操作」はタグに対する独自属性をどのように系統だって設計するか?ということで整理し、その独自属性に指定する値というのは「式言語」で処理して、その処理結果を独自属性が使用すると。ここをきれいに切り離せておけば設定を外だししたときにもHTMLに書いたとしても同じ記述ができると思うし、将来的に「式言語」の差し替えも可能となるのではないかと思っています。

正月明けにはある程度めどが立ってるといいなーと思っています。1月に使いたい案件があるもので・・・