6

このトピックに触れる記事がいくつかありますが、どれも私にとって実用的な解決策ではないようです。私の目標は、いくつかの基本的なメソッド(とにかく各コントローラーで必要なメソッド)をベースコントローラーに配置することです。

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

これはどのように行うことができますか?

AFAIKは、サービスをベースコントローラーに注入する必要がありますが、スーパークラスにサービスを使用するようにクラスに指示するにはどうすればよいですか?コントローラーと依存性注入についてのまともな記事がいくつかありますが[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

4

1 に答える 1

3

擬似コード

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

  getEntityManager
    return $this->container->get('doctrine.orm.entity_manager')
于 2011-04-27T08:27:10.457 に答える