Symfony 2:定义为服务的存储库与注入表达式的存储库之间是否存在差异?

时间:2016-11-17 13:11:23

标签: symfony

我可以将存储库定义为服务:

<service id="books_repository" class="MyApp\BooksBundle\Repository\BooksRepository">
    <factory service="doctrine.orm.default_entity_manager" method="getRepository"/>
    <argument>MyApp\BooksBundle\Entity\BookEntity</argument>
</service>

然后注入:

<service id="books_service" class="MyApp\BooksBundle\Service\BooksService">
    <argument type="service" id="books_repository"/>
</service>

但我也可以使用表达式参数:

<service id="books_service" class="MyApp\BooksBundle\Service\BooksService">
    <argument type="expression">service('doctrine').getManager('default').getRepository('MyApp\BooksBundle\Repository\BooksRepository')</argument>
</service>

我是否应该选择一种解决方案而不是另一种?它们在功能上是否相同?

0 个答案:

没有答案