ログ日記

作業ログと日記とメモ

mapleについて独り言

自作テンプレートからFlexyに移ったように、自作フレームワークからCakePHPsymfonymapleに移るべきなんだろうな。今がその時期。
しかしFlexyを自分で修正してしまったように、フレームワークも自分で変えたいところが出てくるだろう。
そういう場合を考えるとmapleがいいと思う。


[Maple-dev: 242] Re: ConfigUtilsクラスのreadConfig

「アクション固有の設定ファイル」は
本来「アクション(のインスタンス)を初期化するための設定ファイル」
であるべきだと考えています。
つまり現在のActionフィルタの役割を統合して、
アクションそのものを完全にDIContainerで管理するという形です。
(この発想は、かつてkloveさんが公開されていた
 『Maple and S2Container』からのものです)

どういうことだろう。
元のページは無くなっていた。キャッシュも無かった。
当時は読んだんだろうけど意識してなかったというか今だから分かる部分が多そうなだけに残念。



ちなみに自分のフレームワークのフィルタはiniファイルに

actionLoginCheck = Filter_LoginCheck

と書けばFilter/LoginCheck.php が実行される。
キーは何でも良い。(が、順番は保存されるし値を空欄にしてフィルタを消したり変更したりするための識別子として使う)


mapleはそもそもセクション自体がフィルタなんだね。
フィルタの概念というか考え方が違うのか。
mapleは汎用的だ。私の場合は汎用的なものは(今のところコンバータとバリデータだけ)コアが用意して、フィルタはロジックの一部。
mapleのフィルタは非機能要求に対応するものだがlaizのフィルタは機能要求に対応する。
というような表には出てこない考え方の違いがありそう。



http://kunit.jp/maple/wiki/index.php?%C6%C8%BC%AB%A4%CEFilter%A4%F2%BA%EE%C0%AE%A4%B9%A4%EB
この名前にしてもそうだ。
汎用的なものを意識している。
上の例は何となく書いたけど、loginCheckというフィルタは単一の(Authよりも細かい)機能を表している。そういう思想の違いか。



数日前の疑問が今はっきりしたけど、やっぱり

//
// ここで一旦次のフィルターに制御を移す
//

これは良くない気がする。
Template Methodパターンを使う典型的な例なんじゃないだろうか?せっかくFilterクラスを継承しているのにFilter::execute()ではabstractのPHP4実装としてエラー終了している。



ええっとこれはmaple-devに言うべきかな?でもmapleを使ってないので言いにくい・・。
余力があればディレクトリ構造によるcore(というか基本搭載のフィルタ)書き換えを体験しながら修正してみよう。