Mapleの流れ
Mojavi見た後にMapleを見てたらアクションクラスに extends Action が無いのが凄く不思議だ。
これがAOPってやつか…。
class ActionChain { ・ ・ ・ function add($name){ ・ ・ list ($className, $filename) = ActionChain::_makeNames($name); ~~~~~~~~~~~
一見不思議だった。
DIContainerでActionChainクラスとは別のクラスがアクションチェーンに登録されている可能性があるから、ここは $this-> じゃないのか…深いな…。
それにしてもことあるごとにログを記録してる…。
生のエラー出たら意味分からないもんな。フレームワークを作るってそういうことか。
PHPはコメントに @return って書かないのか。なるほど。
そんでアクションを実行するのはどこかと探してたら Filter_Action.class.php にあった。
処理の流れを司ってるのはFilterだからか…。
Controllerのwhileループの中
- ControllerがConfigUtilsをコンテナから取り出す
- ConfigUtils->execute() で現在のアクションのコンフィグを設定する
- FilterChainをコンテナから取り出す
- FilterChain->build(ConfigUtils) で現在のアクションのコンフィグを取り出し、フィルタチェーンを配列に設定
- FilterChain->execute() で…何をやってるんだろう。。
- FilterChain->clear() で初期化(?)
- ConfigUtils->clear() で初期化
- actionChain->next() で次のアクションへ
whileの外でコンテナからコンポーネントを取り出さずに、whileの中で毎回取り出してるのは何故だろう。。
取り出すものが変わっていってるのかな。
ConfigUtils.class.php の $filters["Action"] ってどこでセットされてるんだろ。。むずい。
# ここまで書いて途中で寝てた…