テンプレートの扱い
次期Moonyの構想とか。
Moony_TemplateはSmartyを利用したテンプレートクラス。アクションクラスのexecuteメソッドの引数として渡される。値の設定用に以下のメソッドが用意されており、最後の引数にfalseを指定しない限り値がエスケープ処理される。
- bind(&$obj, $to_escape = true): オブジェクトの全プロパティを取り出して設定
- assign($name, $value, $to_escape = true): 値を設定
- assignAll($values, $to_escape = true): 連想配列の全要素を取り出して設定
class Foo extends Moony_Action { // リクエストパラメータ var $name; function validate($v) { $v->setRequired($this->name, '名前は必ず入力してください'); } function execute($t) { $session = $this->getSession(); $user_id = $session->get('user_id'); // テンプレートに設定 $t->assign('user_id', $user_id); // このクラスのプロパティを設定 $t->bind($this); // テンプレート描画(デフォルトテンプレートを使用) $t->display(); } }