【发布时间】:2015-05-23 09:08:56
【问题描述】:
我正在考虑第一次在项目中使用 Doctrine2。在我的研究中,让我感到震惊的一件事是:
<?php
/**
* @Entity(repositoryClass="BugRepository")
* @Table(name="bugs")
**/
class Bug
{
//...
}
似乎我只能将一个存储库与每个实体关联?如果这个 Repository 类变得太大(方法/代码太多)并且我想将它分成多个 Repository 类,我该怎么办?
【问题讨论】:
-
您可以将您的逻辑移动到一个或多个服务类中,然后注入存储库。存储库主要关注查询。大多数实际工作应该在其他地方完成。
-
是的,但我有很多疑问
-
所以你是说在 Doctrine2 中没有办法做到这一点?您唯一的建议是精简存储库,我们无能为力吗?我可能考虑过一些“工厂”,因为存储库可能会延迟加载其他存储库,但所有内容都来自要构建的单个存储库(分配的学说)。
-
玩一下。我想你会找到几种方法。是的,存储库可以充当工厂来分离查询。或者您只需创建特定的查询类并将存储库注入其中。
-
明白了@Cerad。如果您想通过将教义存储库注入查询类的示例给出答案,我将接受该答案。但除此之外,感谢您的指导!
标签: doctrine-orm repository entity