コード例 #1
0
ファイル: Controller.php プロジェクト: miztaka/teeple2
 /**
  * コントローラーを実行します。
  *
  */
 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
ファイル: ActionChainTest.php プロジェクト: miztaka/teeple2
 public function setUp()
 {
     $this->container = Teeple_Container::getInstance();
     $this->actionChain = $this->container->getComponent('Teeple_ActionChain');
     $this->request = $this->container->getComponent('Teeple_Request');
     $this->container->register('DefaultTx', new StdClass());
     $this->response = $this->container->getComponent('Teeple_Response');
 }
コード例 #3
0
ファイル: Session.php プロジェクト: miztaka/teeple2
 /**
  * @return Teeple_Session
  */
 public static function instance()
 {
     return Teeple_Container::getInstance()->getComponent(__CLASS__);
 }
コード例 #4
0
 public function setUp()
 {
     $this->container = Teeple_Container::getInstance();
 }
コード例 #5
0
ファイル: cli.php プロジェクト: miztaka/teeple2
    fwrite(STDERR, "Invalid Parameter.");
    exit;
}
$cmpName = $argv[1];
$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();
コード例 #6
0
ファイル: Migration.php プロジェクト: miztaka/teeple2
 /**
  * Migrationを実行します。
  * 
  */
 public function execute()
 {
     $config = $this->dataSource->getDataSourceConfig();
     foreach ($config as $name => $dsn) {
         print "** start migration for {$name}. \n";
         $conn = $this->dataSource->getConnection($name);
         $this->pdo = $conn->getDB();
         // DBのmigratoin番号を取得
         $remote_num = $this->getRemoteNum();
         print "remote: {$remote_num}\n";
         // ローカルのmigration番号を取得
         $local = new Teeple_Migration_Local(dirname(BASE_DIR) . "/migration/" . $name);
         $local_num = $local->getMaxNum();
         print "local: {$local_num}\n";
         while ($remote_num < $local_num) {
             $remote_num++;
             print "apply {$remote_num}..";
             $ddl = $local->getContent($remote_num);
             $ddllist = explode(';', $ddl);
             try {
                 foreach ($ddllist as $q) {
                     $q = trim($q);
                     if (strlen($q)) {
                         $stmt = $this->pdo->prepare($q);
                         $stmt->execute();
                     }
                 }
             } catch (Exception $e) {
                 print "fail.\n";
                 print $e->getMessage();
                 return;
             }
             $this->pdo->beginTransaction();
             $stmt = $this->pdo->prepare("UPDATE " . self::TABLE_NAME . " SET version = {$remote_num}");
             $stmt->execute();
             $this->pdo->commit();
             print "success.\n";
         }
         print "** finish migration for {$name}. \n";
     }
     // --entityがセットされていたらEntityも更新する
     if (isset($this->_argv) && in_array('--entity', $this->_argv)) {
         print "\n*** update entity class.\n";
         $entityGenerator = Teeple_Container::getInstance()->getComponent('Teeple_EntityGenerator');
         $entityGenerator->_argv = array('--force');
         $entityGenerator->execute();
     }
 }