php - 注入(inject)依赖项 - Doctrine : Multiple repositories vs single entity manager

标签 php database symfony dependency-injection doctrine-orm

我有一个服务类依赖于多个实体存储库,例如 4。
我可以注入(inject)每个存储库并以许多依赖项结束,或者我可以将实体管理器作为单个依赖项注入(inject);依赖于 EntityManager->getRepo('xyz')

独立的依赖有代码提示的好处。

单一依赖意味着在构造时不那么冗长。
可能更简单的模拟和更少的设置?

什么是更好的做法?

最佳答案

在这种情况下,EntityManager 类似于 Service Locator .当服务依赖于 EntityManager 时,它也正式依赖于它的所有 API 和所有相关对象(存储库、元数据等)。最好只注入(inject)你真正需要的东西: 特定存储库的显式注入(inject)使您的服务更易于阅读和测试。

此外,如果可能,优先选择接口(interface)而不是类(ObjectRepository 而非 EntityRepository,ObjectManager 而非 EntityManager)。

关于php - 注入(inject)依赖项 - Doctrine : Multiple repositories vs single entity manager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40586472/

相关文章:

php - PDO UNION 与 ?不工作

database - 在索引中使用 bool 值或枚举列?

python - 如何从 (.db) 文件读取 python 变量并为其赋值

symfony - Symfony2 中的 Paypal

php - 如何使用php防止同一记录在mysql中插入两次

php - 如何在 Laravel 中将公用文件夹设为根目录?

php - 从 mysql_fetch_row() 中排除结果

sql-server - 使用 Ruby、ODBC 和 FreeTDS 从 Mac 连接到 MS SQL Server 2005

symfony - 尝试登录时陷入循环

交响乐 4 : ArrayCollection add not persisting in database