M2

アクション内のメソッド名

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…

テンプレート記法

M2

<p></p>じゃなくて <p id="content"></p>とか書けたら素敵だ。実装の手間はかかるけど…。どうするかな。(追記)…と思ったけどPHP標準の記法で十分な気がしてきた。その方が速いし。制御構造とかでも悩まないし。

用語とか

M2

やっぱりPageじゃなくてActionにすることに。使い慣れた名前の方がいい。次期Moonyは以下の組み合わせで動く。 アクションクラス テンプレートファイル ただし、テンプレートにはSmartyではなく、プレーンなPHPファイルを使う。

アクション内のメソッドとか

M2

いや、もう単純に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

よく考えたら、入力エンコーディングと出力エンコーディングが異なる場合ってあまりない。 M2::useEncoding($encoding) M2_Page::useEncoding($encoding) 上記のようなインタフェースを用意しておいて、全体の設定はフロントコントローラで行い、個別の設定…

命名に悩む

M2

例えば、以下のどちらにしようか悩む。 M2_Page::getParameter($name) M2_Page::getParam($name) なるべく英単語は省略しない方がいいと思うが、タイプ量は減らしたい。どうしたものか。

Pageクラスに集約する

M2

いろいろな機能をPageクラスに集約して、そのサブクラスで個別の実装をするのはどうだろう。 class Foo extends M2_Page { function execute() { // 入出力エンコーディング指定 $this->useEncoding('SJIS', 'SJIS'); // リクエストパラメータ取得 $name = $…

Pageクラス探索の仕組み

M2

次期Moony(仮称:M2)について、Pageクラスベースで動く仕組みを考えてみる。Pageクラスというのは、現行Moonyで言うところのアクションクラスのこと。例えば、/foo/bar/bazというURLにアクセスがあった場合、以下の順番でPageクラスを探索する。 /pages_dir…

M2とか

M2

次期Moonyとか考えてみる。仕切り直す感じで。 Requestクラスの廃止 $_POST/$_GET/$_REQUESTで十分 Responseクラスの廃止 もうSmartyは使わない プレーンなPHPテンプレートを新たに実装 明示的に実行させるvalidator 明示的に実行させるpre-filter テスト容…