我在symfony2中构建一个应用程序只是为了更好地了解它是如何工作的。我的问题是我不确定在哪里放置一些类,例如:我有一个类别实体和一个类别存储库,以及一个控制器,用于管理我在其中使用仓库查询存储库的类别(如何在食谱中进行解释)
$category = $this->getDoctrine()->getRepository()
现在我正在使用博客控制器,我想显示一个表单(例如在编辑模式下),因此我必须查询博客存储库,但是我还需要再次查询类别存储库以允许选择类别。
我认为在控制器中查询2个不同的存储库不是一个好主意,有人可以建议我如何组织此类,以避免在我需要它们的所有操作中实例化所有存储库吗?关于如何组织代码还有其他有用的建议吗?谢谢
在单个控制器中调用2个(或更多)存储库的方法没有错。
但是在您描述的场景中,表单组件将以查询类别以供选择的情况。我建议您在该文档中深入研究。提示:实体字段类型。
一些忠告
您可能知道“意大利面条代码”是什么,但是也有相反的说法:“烤宽面条代码”:您得到的类支柱并不能真正协同工作。
您可以为用户提供一个支柱(UserEntity,UserRepository,UserService和UserController),为博客发布提供一个支柱(BlogPostEntity,BlogPostRepository,BlogPostService和BlogPostController),等等。
这也是您宁愿不要创建的东西,因此建议将意大利面条和烤宽面条很好地混合在一起;)
尝试让服务代表您的业务需求/业务领域(或Domain)。控制器不过是客户端(浏览器等)与您的服务之间的连接器。存储库只是技术细节(不是您的重点)。
PS:一点校正
您应该更改此:
$category = $this->getDoctrine()->getRepository();
对此:
$categoryRepository = $this->getDoctrine()->getRepository('Category');
从长远来看,这对您来说不会太令人困惑。例子:
$categoryRepository = $this->getDoctrine()->getRepository('Category');
$category = $categoryRepository->find(123);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句