Пример #1
0
 /**
  * コントローラーを実行します。
  *
  */
 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;
 }
Пример #2
0
$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);
}