【发布时间】:2012-08-09 17:39:54
【问题描述】:
好吧,我准备用 symfony 2 做一个网站。
我应该只制作一个“主要”捆绑包来控制/组合所有其他捆绑包吗? 对于我正在考虑的其他捆绑包,可以说是控制与照片相关的事物的“画廊”捆绑包,以及控制商店部分的“商店”捆绑包。
什么是最好的(或至少是好的)实践?专业团队将如何做到这一点?
【问题讨论】:
好吧,我准备用 symfony 2 做一个网站。
我应该只制作一个“主要”捆绑包来控制/组合所有其他捆绑包吗? 对于我正在考虑的其他捆绑包,可以说是控制与照片相关的事物的“画廊”捆绑包,以及控制商店部分的“商店”捆绑包。
什么是最好的(或至少是好的)实践?专业团队将如何做到这一点?
【问题讨论】:
就像@Cyprian 所说的那样,捆绑包是一组可以单独工作的功能。正如开发过程中发生的那样,我们并不总是知道什么时候是分开的。它随着时间而来。
就个人而言,我从 2 月开始使用 Symfony2,我从未停止阅读手册和相关书籍以更深入地了解。我向你保证,这很有帮助,而且读起来很有趣:)
这是我的top favourites documentation pages, en enlightening blog posts on delicious。
对于您的直接问题,请忘记我们在 symfony 1.x 中所做的“前端”和“后端”。只需考虑模型实体(如在单行中)并构建在一个捆绑包中。随着代码的增长,您将看到如何在包中反汇编和分离。您只需要记住将您的功能分离为小方法并进行重构。
【讨论】:
查看以下问题以及我对它们的回答:
基本上,在我的上一个项目中,我没有为 app 特定 代码使用捆绑包;唯一的例外是那些硬编码成捆绑包的东西——比如 Doctrine Fixtures——我放在AppBundle 中。其他一切——模型、控制器、服务、表单类型等——都不在任何捆绑包中。
【讨论】:
根据 symfony 文档,bundle 应该是一致且封闭的结构。因此,如果例如“商店”和“画廊”以某种方式相关(例如,使用相同的模型),那么它们应该在一个包中(AppBundle、CoreBundle、PlatformBundle - 任何你想要的)。但是如果画廊是完全独立的一段代码并且可以很容易地加入到另一个项目中——那么你应该考虑将它排除在单独的包中。
我认为一个好主意是看看 github 上的一些项目,看看其他人是如何处理的。
【讨论】: