M2
こんな感じにしようかと。シンプルに。 class Foo extends M2_Action { function execute() { // get the request parameter $name = $this->getParameter('name'); // assign the value to the template variable $this->assign('name', $name); // display…
<p></p>じゃなくて <p id="content"></p>とか書けたら素敵だ。実装の手間はかかるけど…。どうするかな。(追記)…と思ったけどPHP標準の記法で十分な気がしてきた。その方が速いし。制御構造とかでも悩まないし。
やっぱりPageじゃなくてActionにすることに。使い慣れた名前の方がいい。次期Moonyは以下の組み合わせで動く。 アクションクラス テンプレートファイル ただし、テンプレートにはSmartyではなく、プレーンなPHPファイルを使う。
いや、もう単純にget/setでいいんじゃないかと。ダメかな。 class Foo extends M2_Action { function execute() { // get the request parameter value $name = $this->get('name'); // set the template variable value $this->set('name', $name); // disp…
よく考えたら、入力エンコーディングと出力エンコーディングが異なる場合ってあまりない。 M2::useEncoding($encoding) M2_Page::useEncoding($encoding) 上記のようなインタフェースを用意しておいて、全体の設定はフロントコントローラで行い、個別の設定…
例えば、以下のどちらにしようか悩む。 M2_Page::getParameter($name) M2_Page::getParam($name) なるべく英単語は省略しない方がいいと思うが、タイプ量は減らしたい。どうしたものか。
いろいろな機能をPageクラスに集約して、そのサブクラスで個別の実装をするのはどうだろう。 class Foo extends M2_Page { function execute() { // 入出力エンコーディング指定 $this->useEncoding('SJIS', 'SJIS'); // リクエストパラメータ取得 $name = $…
次期Moony(仮称:M2)について、Pageクラスベースで動く仕組みを考えてみる。Pageクラスというのは、現行Moonyで言うところのアクションクラスのこと。例えば、/foo/bar/bazというURLにアクセスがあった場合、以下の順番でPageクラスを探索する。 /pages_dir…
次期Moonyとか考えてみる。仕切り直す感じで。 Requestクラスの廃止 $_POST/$_GET/$_REQUESTで十分 Responseクラスの廃止 もうSmartyは使わない プレーンなPHPテンプレートを新たに実装 明示的に実行させるvalidator 明示的に実行させるpre-filter テスト容…