2006-06-01から1ヶ月間の記事一覧

テンプレートの扱い

次期Moonyの構想とか。Moony_TemplateはSmartyを利用したテンプレートクラス。アクションクラスのexecuteメソッドの引数として渡される。値の設定用に以下のメソッドが用意されており、最後の引数にfalseを指定しない限り値がエスケープ処理される。 bind(&$…

別の書き方

んーと、下のはこういう風にも書けるようにする。 function execute($t) { $t->assign('user_id', $user_id); $this->render($t); }Moony_Action::renderを実行するとMoony_Template::bindとMoony_Template::displayが続けて実行されるイメージ。

Shibuya.js TT#2

会社の近くだったので行ってきたよ。 id:brazilさんのプレゼン、綺麗で上手 最速の人のLDRの話。徹底ぶり、割り切りぶり。 竹迫さんのサーバサイドJavaScript、ちよっと考えてみる。メリットとデメリットと。

そうだ

マージンFXのひまわり証券さん、ニンテンドーDS Lite欲しい! そのうち息子と遊べるかな…。

アクションクラスに集約

次期Moonyではアクションクラスにデータ要素も持たせる予定。 今まで アクションクラスは振る舞いだけ データはRequest/Responseのクラスに格納 次期Moony アクションクラスは振る舞い/データ両方を備える 1つのアクションの関心事を集約 データ: アクション…

guesswork classicを見てみる

次期Moony、考えるうちにguesswork classicに似てきた…。ちょっとソースとか覗いてみる。

WEB+DB Vol.33

WEB+DB PRESS Vol.33作者: WEB+DB PRESS編集部出版社/メーカー: 技術評論社発売日: 2006/06/22メディア: 大型本 クリック: 16回この商品を含むブログ (40件) を見るお昼休みに三省堂まで行って買ってきた。エスカレータ脇の台に平積みされていたのでびっくり…

フレームワークの名前重要

よく考えると、Ruby on Railsっていい名前だ。レールだなんて! 悪いフレームワーク 使わされている感 制約に縛られる割りに楽にならない よいフレームワーク 乗ることができる 規約に従うことでずっと楽できる レールに乗ってどこまでも、遠くへ早く。ちな…

買ってきた。

Web2.0でビジネスが変わる [ソフトバンク新書]作者: 神田敏晶出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/06/16メディア: 新書 クリック: 18回この商品を含むブログ (94件) を見る実際に参加した方が理解が深まるし、よい考えも浮かぶってこと…

アクションクラスのイメージ

Moony次期バージョンのアクションクラスについて考えていること: 特定のクラスのサブクラスである必要はない リクエストパラメータはプロパティとして格納される 必要最低限のクラスのインスタンスが各メソッドの引数として提供される セッション管理クラス…

アクションクラスの設計、やり直し

http://d.hatena.ne.jp/hiro_y/20060616/1150450108次期Moony、いくらなんでもアクションクラスに処理を詰め込みすぎだ…。もう一度設計とかやり直す。とりあえず、リクエストパラメータはアクションクラスのプロパティとして設定されるようにしようかな。

アクションクラスの設計

機能をアクションクラスに集約する → Moony_Action 色々なクラス/メソッドの使い方を覚える必要なし モジュール設計的には美しくないが、お手軽感重要 アクションクラスは全てMoony_Actionのサブクラスとして実装 次期Moonyで実装予定の機能は: メソッド名 …

バージョン表記とか名前とか

今更だけど、次期Moonyのバージョン表記をどうしようか考え中。 Moony 0.11.xとしてリリース Moony2 0.1.xとしてリリース Smartyを使わないとか、Requestクラスの廃止とか、今までのMoonyとは全然違うんだよなぁ。全く別の名前のフレームワークにしてもいい…

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

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 テスト容…

Moony 0.10.4リリース

Moony 0.10.4をリリースしました。1件のバグ修正を含みます。ダウンロードはSourceForge.jpからどうぞ。変更メモ: /fooにアクセスがあり、Fooテンプレートがない場合のリダイレクトを取り止め(バグ修正、実装再検討) エラー発生時に出力バッファをクリアす…

Moony 0.10.3リリース

Moony 0.10.3をリリースしました。ダウンロードはSourceForge.jpからどうぞ。変更メモ: 設定iniファイルの指定方法変更(Moony::setConfigFile) Moony_Filterのメソッド名変更(Moony_Filter::toHiragana、Moony_Filter::toKatakana) /fooにアクセスがあり…

年月日のセレクトボックス

たまにはJavaScript。存在しない日付を表示/選択できないようにするライブラリ、要prototype.js。 /* setday.js requires: prototype.js usage: new SetDay('y1', 'm1', 'd1'); */ var SetDay = Class.create(); SetDay.prototype = { y: null, m: null, d: …

リクエストパラメータをまとめる

class Foo { var $request; function execute() { // nameの値を取得(1) $name = $this->request->get('name'); // nameの値を取得(2) $obj = $this->request->toObject(); $name = $obj->name; } }リクエストパラメータを一つのオブジェクトにまとめられる…