Symfony2コントローラーのベースクラスを実装する方法
-
22-10-2019 - |
質問
このトピックに触れる記事はいくつかありますが、それらのどれも私にとって実用的な使用可能な解決策ではないようです。私の目標は、いくつかの基本的な方法(とにかく各コントローラーで必要なもの)を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')
所属していません StackOverflow