アクションが適切なトランザクション処理を行うようにするために、コントローラーで次のコードを何度も繰り返していることに気付きました。
/**
* @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 を知っている場合、これはコンテナー管理トランザクションのようなものです。
このためのバンドル (または他の優れたソリューション) はありますか?