質問

このトピックに触れる記事はいくつかありますが、それらのどれも私にとって実用的な使用可能な解決策ではないようです。私の目標は、いくつかの基本的な方法(とにかく各コントローラーで必要なもの)をBasecontrollerに入れることです。

   $this->getEntityManager();
   $this->getRequest();
   $this->getRepository($entityName);

これはどうすればいいですか?

AFAIKサービスをBasecontrollerに注入する必要がありますが、スーパークラスにサービスを使用するようにクラスに伝えるにはどうすればよいですか?コントローラーと依存関係の注入に関する適切な記事がいくつかあります[1]が、最後に私もそのアプローチに固執しました。ここで私のコメントを参照してください:[2

[1] http://miller.limethinking.co.uk/2011/04/15/symfony2-controller-as-service/

[2] http://miller.limethinking.co.uk/2011/04/15/symfony2-controller-as-service/#comment-579

役に立ちましたか?

解決

擬似コード

MyBaseController impliments Symfony\Component\Di\ContainerAwareInterface
  setContainer($container)
    $this->container = $container

  getEntityManager
    return $this->container->get('doctrine.orm.entity_manager')
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top