オレオレ

View->renderで__toString可能なオブジェクトを返してみる

Viewでの処理結果をシームレスにキャッシュするため、レスポンスオブジェクトに追加するデータを文字列データではなく、__toString可能なオブジェクトにしてみました。PHP的には文字列で格納してゴリゴリ追加していくというのも悪くはないのですが、個人的に…

表層系と処理系でコントローラー

このへんの続き。 http://d.hatena.ne.jp/noopable/20090201/1233445916 http://d.hatena.ne.jp/noopable/20090201/1233528374 これを実現したいとする。 処理の流れを再確認 ルーティング ページクラス(ページコントローラーを起動) どんなページにするの…

スタティックルートを集約してみた

部分一致ルールと再帰ルーターを実装したので、もう一つ、スタティックなルートを集約して扱うルートを作成した。 主にCMSなどでサイト内のセグメントを分割したり、独立ページを自由に配置したいときなどに利用する。 Zend_Controllrer_Router_Route_Static…

とりあえずリポジトリの場所だけ

オレオレ用の公開リポジトリを作った。まだ、wikiに1ページ追加しただけ。 http://code.google.com/p/zflower/ SVNの連携のうまい手は? 通常だと、社内ローカルSVNで作業するんだけど、公開用にアップするときはどうするのが正解なんだろう。 MercurialやGI…

ルーティング:部分一致ルートと再帰構造ルーティング

http://d.hatena.ne.jp/noopable/20090215/1234653729 ここでも書いたが、Zend_Controller_Router_Rewriteの実装は、すべてのルートをグローバル的に保存し、順にチェックする。 それでもいいが、ルーティングのルールを組み合わせたり、遅延登録をさせたい…

回避策を考えるより、書き換えた方がクリーン。だからフレームワーク

オープンソースのCMSやフレームワークもいろいろあるけれど、それを業務ニーズにマッチさせようとすると何かと拡張が必要になる。 CMSの変更は黒魔術的 その時、それらのシステムが用意した拡張ポイント、プラグインやらコンポーネントやらで回避的に目的…

Dispatcher_AliasDirを書いた

一つのモジュールを複製して使いたいというニーズがあったので、エイリアスディレクトリにディスパッチできる機能を作ってみた。モジュールをコピペしたりsymlinkしたりするのではなく、たとえばビュースクリプトの一部だけ上書きするような使い方を可能にす…

参照透過性を考慮する

PHPでこんなことをやるのは邪道かもしれないが、オレオレFWの設計指針には関数型ライクな考え方を盛り込みたい。成果物の評価法は開発工数と機能性に偏りがちだけれども、自前のサービスに利用する場合なら、内面的なクオリティを高めておくことは意味がある…

部分一致ルートに関する考察

現在のルーターの仕様は、ルートをハッシュ配列に入れて、順に一致をチェックしながら決定する仕組み。あらゆるルートは検索を開始する前に登録するのが基本。URLのassemble時に名前指定でルートを特定してURLに変換するため、名前付きで登録されていないル…

コントローラー間のメッセージキューを作った

あるアクションコントローラーから、複数の別のコントローラーに情報を伝達しながら処理を渡したいというニーズがあったので、既存の転送とは別にメッセージキューを利用して計画的な処理チェーンを作成できるようにしてみました。 このアイデアは、Presenta…

アクションコントローラーの保存を多階層化

アクションコントローラーの保存を多階層化して、多数のコントローラーを整理できるようにした。 Zend_Controller_Dispatcher_Standardのコントローラー名解決でサブディレクトリ仕様にしてみた。 Zend_Controller_Dispatcher_Standardを継承したクラスを作…

表層系と処理系でコントローラーを区別する方策

「表層系のページ構成部分と、オブジェクトモデルの処理系を区分したい。」 http://d.hatena.ne.jp/noopable/20090201/1233445916 これを実現したいとする。 コントローラーを識別するのにどういう方法がいいのかを検討してみた。 モジュラーディレクトリ構…

コントローラーを表層系と処理系に分け、ウィジェットでやりとりする

表層系のページ構成部分と、オブジェクトモデルの処理系を区分したい。コントローラーと一口に言っても、ビューを制御するコントローラーと、モデルを制御するコントローラーがある。それぞれから、ビューに該当する部分はビューへ、モデルをコントロールす…

なぜビューにしないのか。

http://d.hatena.ne.jp/noopable/20090201/1233445916 ↑で書いた、 ビューに該当する部分はビューへ、モデルをコントロールする部分はモデルへと分離していけば、 きれいなMVCにはなるかもしれない。無論、それでもいい。 ルーティングの重み付け この部分、…