MENTAの勉強 2

二日目です。

チュートリアルを参照にしながら、いじっていきます。
http://gp.ath.cx/menta//manual/tutorial


app/ - あなたのアプリケーションをいれるところです
app/controller/ - あなたのアプリケーションそのものをいれます
app/data/ - あなたのアプリケーションのデータがはいります
app/static/ - 静的な画像やJavaScript, CSS などをいれます
extlib/ - 厳選されたCPANモジュールたち
lib/ - MENTA そのもの
plugins/ - MENTAプラグイン
t/ - MENTA 自体のテストスクリプト。ユーザーの方はきにする必要ありませぬ


と、ざっと解説が載っていますので、MVCがどこに当たるのかつかんで行きたいと思います。


・Model
/pluginsの中に入っている.plがまさにそれのようです。
MENTA::Util::load_pluginで呼び出しを行っています。
(ディスパッチの際に全てが自動的に読み込まれる)


・Controller
app/controllerの中にplファイルを入れる。

URI: http://hoge.com/controller の場合、
controller.pmのsub indexが呼ばれる。

URI: http://hoge.com/controller/booon/ の場合、
controller.pmのsub booonが呼ばれる。

htmlに落とし込むところは、render_and_printというMenta.pmのサブルーチンを
使用。

render_and_print("hoge.mt",@param);


テンプレート名、パラメーターのハッシュが入った配列を渡せばいい。
この辺の使い方はHTML::Templateと同様のようだ。

・View
テンプレートエンジンは以前このブログで取り上げようとしてやめておいた
挫折したMojo::Templateを発展させたものを使用しているとのこと。


変数の使用法はcpanのマニュアルを見ながら少しずつ把握。
かなり柔軟なテンプレートエンジンなんですな。正規表現もテンプレート側で使えるのか〜。


どうやら、プログラム(.pl)もテンプレート(.mt)もスラッシュの後に名前をつけるだけで
呼べるようです。これはディレクトリ構成をちょっと考えねばならないかも。
controllerの直下にmtとplを並存させることもできるけど、そうしない方が
保守性から考えてもいいでしょう。


今日はここまで。
テンプレートをいじって何か表示するところまで行かなかった…汗