我正在寻找关于如何构建Symfony 2.0应用程序的最佳实践的一些指导。如果我有几个捆绑包(Cart Bundle,Product Bundle,CMS Bundle),并且我希望在编写页面时使用所有这些捆绑包的各个方面,我应该如何最好地执行此操作?Symfony捆绑组合,我如何在使用多个捆绑包时构造我的代码
我可以想象两种方法来做到这一点,但我正在寻找哪些(如果有的话)是正确的指导。
1)通过服务公开我捆绑的所有功能,并使这些服务可以直接在树枝中使用。通过这种方式,我可以将我的路由请求传递给最合适的包(因此http://myclient.org/User/Account)被传递给ClientUser包以进行处理,但导航中具有迷你购物车的基本模板能够直接从内部访问它需要的信息树枝(我不需要通过这个)
2)创建一个访问所有其他包以建立页面(如VendorFrontend或VendorBackend)的包。这意味着所有的路由请求都会被传递给这个包,并且这个包在传递给模板之前会访问页面每个部分所需的信息。
第一个选项感觉不对,因为我不确定是否可以让Twig直接使用服务(虽然服务容器)?
第二个选项感觉不对,因为它就像使用第二个路由器一样,路由将被传递到一个捆绑包中,该捆绑包仅存在于组合其他捆绑包中(这里给出的是该捆绑包紧密地耦合到捆绑包使用)。这当然违背了代码可重用的'捆绑'的概念。
在这个例子中,我试图构建一个非常简单的电子商务网站,仅用于演示目的。我有一个基本模板,将有一个主导航,迷你购物车,'身体'和页脚。我将它存储在/ app/Resources目录中。我打算让所有其他模板继承这个模板并覆盖“body”区域。
不想spoon,,只是在正确的方向微调。谢谢。
刚看到一个很老的问题upvote。答案是在适当的地方使用子请求,并在适当的地方使用树枝扩展。上面讨论的第二个选项在您的应用程序开始增长时甚至不是一个可行的选项。它也可怕地耦合到个人捆绑。 TL; DR。 1 – calumbrodie 2013-06-13 20:15:57