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ループの中

  1. ControllerがConfigUtilsをコンテナから取り出す
  2. ConfigUtils->execute() で現在のアクションのコンフィグを設定する
  3. FilterChainをコンテナから取り出す
  4. FilterChain->build(ConfigUtils) で現在のアクションのコンフィグを取り出し、フィルタチェーンを配列に設定
  5. FilterChain->execute() で…何をやってるんだろう。。
  6. FilterChain->clear() で初期化(?)
  7. ConfigUtils->clear() で初期化
  8. actionChain->next() で次のアクションへ

whileの外でコンテナからコンポーネントを取り出さずに、whileの中で毎回取り出してるのは何故だろう。。
取り出すものが変わっていってるのかな。

ConfigUtils.class.php の $filters["Action"] ってどこでセットされてるんだろ。。むずい。


# ここまで書いて途中で寝てた…