我正在开发一个具有公共部分和后台部分的网站。我的意图是拥有这个捆绑结构:
- Acme/CoreBundle:公共和私有的公共实体、存储库、服务
- Acme/BackofficeBundle:后台的控制器、表单、url...等
- Acme/FrontofficeBundle:前台相同
然后修改 app_kernel,以便根据虚拟主机的环境变量加载其中一个或另一个的捆绑包。
这有意义还是有更好的方法?
谢谢!
我认为您应该采用与您提出的方法不同的方法。您不需要在后端和前端之间做出明显的区别。您应该使用“前端与后端”以外的其他标准来组织您的代码。
假设您有一个购物车。因此,您可能需要一些订单、客户和产品管理。您将拥有一个前端和一个后端。我认为这种情况下的最佳实践是,如果您接受订单,则创建一个 Acme\OrderBundle。在这里,您将保留与订单相关的所有内容。您可以将前端控制器保留在 Controller/ 中,将后端控制器保留在 Controller/Backend/ 中。您可以为后端区域创建一些服务并将它们保存在 Acme\OrderBundle\Backend 中,但通常是您的服务/表单/等。不应该知道它们在哪里使用,前端或后端。应该使用控制器来进行这种区分。通过这种方式,您可以创建用于前端和后端的订单管理服务、可在两端使用的表单等。