PHPで(M)VCフレームワーク自作
1月 8th, 2008 admin Posted in PHP | 1 Comment »
PHPを単にHTMLのフレームの代用としてレイアウトのためだけに使いたいときがある。
そんな時にはMVCフレームワークのMがないVCフレームワークがあれば便利だなと思った。
要するにCakePHPでいうpageコントローラーだけあるようなイメージ、アクションメソッドなしでテンプレートファイルだけ追加すればページが増えていく状態
作ってみたVCフレームワークのサンプルコード
<?php if (!defined('DS')) { define('DS', DIRECTORY_SEPARATOR); } //テンプレートのフォルダ名 define("TEMPLATE_DIR","templates"); //アクションの変数名 define("ACTION_VARIABLE_NAME","action"); //アクション名のセパレータ define("ACTION_SEPALATER","_"); //デフォルトのアクション define("DEFAULT_ACTION","index"); //テンプレートの拡張子 define("TEMPLATE_EXTENSION","php"); //アクション名を取得 $action = basename($_GET[ACTION_VARIABLE_NAME]?$_GET[ACTION_VARIABLE_NAME]:DEFAULT_ACTION); $template = TEMPLATE_DIR . DS . implode(DS,explode(ACTION_SEPALATER,$action)) . '.' . TEMPLATE_EXTENSION; //テンプレートファイルを読み込み if(file_exists($template)){ include($template); }else{ header("HTTP/1.0 404 Not Found", true, 404); exit; } ?>
使い方
上記のコードをindex.phpって名前で保存する。
同じディレクトリに
template/items/camera.php
のようなファイルを用意する
すると
index.php?action=items_camera
でアクセスできる。
最後に
RailsやCakePHPのようなレイアウト機能があればなお良いと思った。
URLがキレイじゃないのが気になるけどURLがキレイでないと困るサイトでは使わなければ問題ない
1月 10th, 2008 at 10:48:46
[...] 前回作ったフレームワークみたいなやつに、 [...]