【发布时间】:2015-10-01 01:00:15
【问题描述】:
我正在使用 Symfony2 开发一个应用程序,它有 3 个主要部分,分别称为前台、后台和管理员。我正在考虑创建三个单独的包:FrontOfficeBundle、BackOfficeBundle、AdminBundle,但 Symfony 的文档说,每个包之间不应该有任何关系。实体已经是共享属性,并且可能是某些模型。我可以创建一个 SharedBundle 但它没有意义。我记得 2 年前我创建了一个应用程序,当时我有 15 个捆绑包并且都相互连接,我从经验中知道这是一场噩梦。
我是否应该在文件夹中只包含一个捆绑 AppBundle 和逻辑拆分,例如。控制器/管理员;控制器/前台、控制器/后台?
最好的方法是什么?
【问题讨论】:
-
是的,您的应用程序逻辑应该只有一个 AppBundle。
-
您最好先阅读最佳实践。 symfony.com/doc/current/best_practices/…
-
那些最佳实践宣传服务定位器反模式。这意味着您的控制器可以访问整个服务容器,而不仅仅是它真正需要的。如果您改用依赖注入,您将获得更好的可测试性,并且作为奖励,给定控制器的依赖关系在其构造函数中可见。
标签: php symfony architecture