/** * コントローラーを実行します。 * */ public static function start() { $log = LoggerManager::getLogger(Teeple_Util::getPathInfo()); $log->info("*** リクエストを開始します。"); try { // コンテナの取得 $container = Teeple_Container::getInstance(); //$container->setup(WEBAPP_DIR .'/config/dicon.ini'); // セッションを作成 TODO セッションのパラメータ制御 $session = $container->getComponent("Teeple_Session"); $session->start(); // リダイレクトスコープのリクエスト復元 $request = $session->getParameter("__REDIRECT_SCOPE_REQUEST"); if (is_object($request)) { $request->setActionMethod("execute"); $request->resetCompleteFlag(); $request->isRedirect = TRUE; $container->register("Teeple_Request", $request); $session->removeParameter("__REDIRECT_SCOPE_REQUEST"); } // controllerの実行 $controller = $container->getComponent('Teeple_Controller'); $controller->execute(); } catch (Exception $e) { $txManager = $container->getComponent('Teeple_TransactionManager'); $txManager->rollbackAll(); Teeple_ErrorHandler::handle($e); } return; }
$param = $argv; array_shift($param); array_shift($param); /* * Teeple設定ファイルの読込み */ define('BASE_DIR', dirname(dirname(__FILE__)) . "/webapp"); include_once BASE_DIR . "/config/user.inc.php"; /* * コンテナからComponentを取得 */ $container = Teeple_Container::getInstance(); // デフォルトトランザクションをコンテナに登録 $txManager = $container->getComponent("Teeple_TransactionManager"); $defaultTx = $txManager->getTransaction(); $container->register('DefaultTx', $defaultTx); // 実行するコンポーネントを取得 $component = $container->getComponent($cmpName); if (!is_object($component)) { fwrite(STDERR, "No component found."); exit; } if (count($param) > 0) { $component->_argv = $param; } try { $component->execute(); } catch (Exception $e) { $txManager->rollbackAll(); Teeple_ErrorHandler::handle($e); }