紅葉フレームワークを試してみる

まずはインストール.最近の自分はgeneratorなしではめんどくさくなってるので,一緒に入れることにする.

# pear channel-discover pear.momiji-project.org
# pear install momiji/Momiji-alpha
# pear install momiji/Momiji_Generator-alpha

最初インストールいしようとしたら怒られたので,

# pear upgrade PEAR
# pear upgrade-channels

PEAR本体をアップグレード.

んで適当にディレクトリを作る.今回はMomijiそのもののソースも見たかったので,

 + momiji
   + app
   |  + momiji - ここにアプリケーションをつくる
   + libs - ここにMomijiのソースを入れる

とした.
次にSpycとSmartyを入れるみたいだけど,とりあえず今回はSmartyは使わない方向で.Spycを落としてきて,spyc.phpをcomponents配下に移動.これcomponentsに入れるのか….個人的にはlibとか作ってそこに入れたい気もするなぁ.

とまぁこれだけで準備が整ったのかな.早速momijiコマンドでactionを作ってみる.

$ momiji action Index
Nov 24 23:15:59 [create] /www/projects/momiji/app/momiji/webapp/modules/Index/Index.php
$ momiji entry index Index
Nov 24 23:19:22 [create] /www/projects/momiji/app/momiji/htdocs/index.php

ここでふと思った.actionを作ったときにテンプレートは自動生成されないのか.チュートリアルではテンプレートまで生成されてるみたいだからSmartyを入れてれば作られるのかな?
ってことでwebapp作成時にSmartyオプションを入れてみる.

$ momiji webapp --smarty
Nov 24 23:29:15 [create] /www/projects/momiji/app/momiji/htdocs
Nov 24 23:29:15 [create] /www/projects/momiji/app/momiji/webapp
Nov 24 23:29:15 [create] /www/projects/momiji/app/momiji/webapp/cache
Nov 24 23:29:15 [create] /www/projects/momiji/app/momiji/webapp/components
Nov 24 23:29:15 [create] /www/projects/momiji/app/momiji/webapp/configs
Nov 24 23:29:15 [create] /www/projects/momiji/app/momiji/webapp/files
Nov 24 23:29:15 [create] /www/projects/momiji/app/momiji/webapp/logs
Nov 24 23:29:15 [create] /www/projects/momiji/app/momiji/webapp/modules
Nov 24 23:29:15 [create] /www/projects/momiji/app/momiji/webapp/templates
Nov 24 23:29:15 [create] /www/projects/momiji/app/momiji/webapp/configs/momiji.inc.php
Nov 24 23:29:15 [create] /www/projects/momiji/app/momiji/webapp/templates_c
Nov 24 23:29:15 [create] /www/projects/momiji/app/momiji/webapp/smarty
Nov 24 23:29:15 [create] /www/projects/momiji/app/momiji/webapp/smarty/plugins
Nov 24 23:29:15 [create] /www/projects/momiji/app/momiji/webapp/smarty/filters
Nov 24 23:29:15 [create] /www/projects/momiji/app/momiji/webapp/smarty/plugins/modifier.escape_string.php
Nov 24 23:29:15 [create] /www/projects/momiji/app/momiji/webapp/smarty/filters/smarty_window_outputfilter.php

ずらずらっと必要なファイルができる.
改めて

$ momiji action Index smarty
Nov 24 23:33:12 [create] /www/projects/momiji/app/momiji/webapp/modules/Index/Index.php
Nov 24 23:33:12 [create] /www/projects/momiji/app/momiji/webapp/modules/Index/momiji.yaml
Nov 24 23:33:12 [create] /www/projects/momiji/app/momiji/webapp/templates/Index.html
$ momiji entry index Index
Nov 24 23:34:11 [create] /www/projects/momiji/app/momiji/htdocs/index.php

今度はテンプレートまでできてる.

http://localhost/momoji
とかで見てみると

Hello Momiji!
Smarty Template

が表示された.

んーAction毎にディレクトリを作るというのがMapleのときにも感じた微妙な点ではあるから,この辺をなんとかできればなぁと思う.とはいえ設定ファイルの継承(上位階層の設定が下位階層にも反映される)っていう機能を考えたらしょうがないのかな.

後はRailsベースのCakeやらAkelosやら触った後の感想としては,LL言語で設定ファイルは非常にメンドクサイ.なんか最近はphpのことはphpでやっちょおうよ的な考えに染まっちゃってる自分がいる.

とりあえずここで力尽きるorz