web-dev-qa-db-ja.com

Doctrineコントローラー内からSymfony 2.1のエンティティのエンティティマネージャーを取得する方法

最新のSymfonyとDoctrineを使用してコントローラー内からエンティティマネージャーを取得するにはどうすればよいですか?

「非推奨」としてフラグ付けされた「The Book」で説明されている方法。これを行うための現代的な(適切な)方法は何ですか?

public function someAction()
{
    // getEntityManager() from Doctrine\Bundle\DoctrineBundle\Registry is deprecated
    $entityManager = $this->getDoctrine()->getEntityManager();
    ...
}
30
Slava Fomin II

代わりに$this->getDoctrine()->getManager()を使用してください。

実際、使用している永続化レイヤーをコントローラーに認識させないことが最善です。そのようなものを Service Layer に移動して、データの永続化方法を抽象化する必要があります。

50