Eccube\Tests\Transaction\TransactionControllerMock::tran9 PHP Метод

tran9() публичный Метод

public tran9 ( Application $app )
$app Eccube\Application
    public function tran9(Application $app)
    {
        // update 1 :本体側の更新処理とする
        $BaseInfo = $app['eccube.repository.base_info']->get();
        $BaseInfo->setCompanyName('tran9-1');
        $app['orm.em']->flush($BaseInfo);
        // プラグインAが、beginTransactionして更新を行う
        $app['orm.em']->beginTransaction();
        try {
            // update 2
            $BaseInfo->setCompanyName('tran9-2');
            $app['orm.em']->flush($BaseInfo);
            $app['orm.em']->commit();
            // プラグイン内部でエラー
            throw new \Exception();
        } catch (\Exception $e) {
            // update 1 / update 2 がrollbackされる.
            $app['orm.em']->rollback();
        }
        // update 3:プラグインBが、更新処理を行う.
        $BaseInfo = $app['eccube.repository.base_info']->get();
        $BaseInfo->setCompanyName('tran9-3');
        $app['orm.em']->flush($BaseInfo);
        // update 1/2 はrollback され, update 3の更新処理のみ適応される
        return $app->render('index.twig');
    }