/** * Filterの処理を実行します。 * */ public function execute() { $clsname = get_class($this); // 現在のアクション名を取得 $actionName = $this->actionChain->getCurActionName(); // 実行対象かどうかのチェック $isTarget = $this->isTarget($actionName); if (!$isTarget) { $this->log->info("{$clsname} は実行対象外のためスキップします。"); } // prefilterを実行 if ($isTarget) { $this->log->debug("{$clsname}のprefilterを実行します。"); $this->prefilter(); $this->log->debug("{$clsname}のprefilterを実行しました。"); } // filterChain $this->filterChain->execute(); // postfilterを実行 if ($isTarget) { $this->log->debug("{$clsname}のpostfilterを実行します。"); $this->postfilter(); $this->log->debug("{$clsname}のpostfilterを実行しました。"); } return; }
/** * フレームワークを起動させる * * @access public * @since 3.0.0 */ public function execute() { $this->log->debug("************** controller#execute called."); // デフォルトトランザクションをコンテナに登録 $defaultTx = $this->txManager->getTransaction(); $this->container->register('DefaultTx', $defaultTx); // 実行するActionを決定 $actionName = $this->hook->makeActionName(); if ($actionName == NULL) { throw new Teeple_Exception("アクションが特定できません。"); } // 初期ActionをActionChainにセット $this->log->debug("****actionName: {$actionName}"); try { $this->actionChain->add($actionName); } catch (Exception $e) { $this->log->warn($e->getMessage()); $isContinue = $this->hook->actionClassNotFound($actionName); if (!$isContinue) { return; } } // FilterChainのセットアップと実行 $this->filterChain->build(); $this->filterChain->execute(); //$this->filterChain->clear(); }