3

アクションが適切なトランザクション処理を行うようにするために、コントローラーで次のコードを何度も繰り返していることに気付きました。

/**
 * @Route("/complete", name = "authentication_complete")
 */
public function completeAction(Request $request)
{
    $result = null;
    try {
        $this->getManager()->beginTransaction();

        $result = $this->doCompleteAction($request);

        $this->getManager()->flush();
        $this->getManager()->commit();
    } catch (\Exception $e) {
        // @codeCoverageIgnoreStart
        $this->getManager()->rollback();
        throw $e;
        // @codeCoverageIgnoreEnd
    }

    return $result;
}

public function doCompleteAction(Request $request)
{
    // do whatever you action is suposed to do
    return $response;
}

のようなものが欲しいです@ManageTransaction。これはアクションのコメントに入り、二重化されたコードを大幅に節約できます。完璧な世界では、これはコントローラーの転送も巧妙に処理します。

Java EE を知っている場合、これはコンテナー管理トランザクションのようなものです。

このためのバンドル (または他の優れたソリューション) はありますか?

4

2 に答える 2

2

解決策が見つからなかったので、解決策を作成することにしました。

PluessDoctrineTrxBundleは、私が探していたものを正確に実行します。あなたはあなたの行動に注釈を追加し、すべての教義の操作は翻訳によってカバーされます。

于 2013-02-16T10:34:01.387 に答える