CodeIgniter関連で色々と巡回していたら、見つけたのがFrog CMSの作者さんが作ったFrog Framework。
RubyのRadiant CMSのPHP版としてphpRadiantって名称で最初はリリースされたようです。
現在は、Frog CMSっていうようです・・・いわゆるシンプルなCMSで、MODxと比較してはいけないとは思いますが、CMSのベースとなりえそうな感じですね。
で、その作者が1つのファイルでFrameworkのコアを作っちゃったつうことで、そのページが以下のアドレス。
意識しているのがCIで、Welcomeのサンプルを比較してFrogのシンプルさが分かる感じになっています。
コアは1つのファイルなんですけど、構成としてはCIに似ていてMVCモデルで作成できます。
Frog CMSの方とFrameworkを見比べると若干FrogCMSの構成と違うんですが、コアをベースに自分でプログラムを作るとしたらFrameworkのページにあるWelcomeのサンプルソースをベースに作るのがよい感じです。
ちなみに、WelcomeサンプルをベースにTemplateLiteをテンプレートエンジンをライブラリとして改造してみて、素のPHPテンプレートと比較してみました。
素のPHPテンプレートだと、実行時間が約7.9ms~8.5msぐらい(何回かリロードさせて)。
TemplateLiteだと、約8.1ms~10.3msぐらいってことで、意外とTemplateLiteは優秀なのかも知れません。
これをベースに以前作っていたMyDiaryを作り直そうかなぁ とか思っていたりするんですが・・・。
ちなみに、TemplateLiteを入れ込んだかなり適当なやり方を以下に・・・。
1.librariesの下にtemplateLiteのフォルダを作成して、TemplateLiteのsrcフォルダの中身をコピーします。
で、librariesの直下にtemplate.phpっていう名称で以下のコード(まあ、直にTemplateLiteを呼んでもいいんですけど初期設定かましてるだけなんで)
<?phprequire_once(dirname(__FILE__).
"/templateLite/class.template.php");
class Template
extends Template_Lite
{ function Template
() { $this->
compile_dir = CORE_ROOT.
"/app/views/compiled/";
$this->
template_dir = CORE_ROOT.
"/app/views/templates/";
}}?>
complieディレクトリとtemplateディレクトリをそれぞれ指定置くだけです。
2.config.phpでとりあえずrequire_onceで上記のtemplate.phpを読み込んでおきます(コントローラでやってもいいんですけど、共通化で)
3.コントローラの表示処理で呼び出して終わりです。
function index()
{ $tpl = new Template();
$tpl->assign("title","Hello");
$tpl->display("welcome/index.tpl") ;
}
本当は、Viewクラスを拡張してコアもろともtemplateLiteベースに書き換えちゃうのがよいのかも知れませんが・・・。
ちなみに、TemplateLiteの分メモリ消費が増えて約2倍・・・それでもCIのメモリ消費よりは少ないみたいです。
かなりシンプルなフレームワークですけど、CIライクに作れそうなんで小さなプログラムとかにはもってこいのフレームワークって気がします。
ま、だからMyDiaryになんですけど、ブログで代替可能だからなぁ もういらないともいえるMyDiary・・・なんか別物を考えようかなぁ