我确实有这个家伙的问题:http://groups.google.com/group/symfony2/browse_thread/thread/cd35132cc6972f29
我只需将其复制粘贴到这里:
我想知道在一个内容中组织捆绑包的不同方式 项目人员正在使用。
我似乎最终得到了一个项目或大量的大规模捆绑 与彼此密切相关(依赖)的束。例如;
我实现了自己的用户实体和登录表单等,但用户 链接到一个组织(具有一些功能)。等等......是的 主要是我认为重叠很多的实体......
你们是否将它们分开或将它们全部丢弃在一起?
答案 0 :(得分:15)
修改:I don't use bundles for app-specific code anymore。
我个人更喜欢每个应用程序的一个部分都有一个包。例如:
如果应用程序是几个功能的混合,这是没关系的,其中没有一个功能大到足以要求单独的应用程序和/或子域。但是,如果我正在开发一个大型网上应用程序,我的捆绑包将更加具体:
所以,我会说,这取决于项目的重点。什么只是一个项目的一个部分可能是另一个项目的核心功能。
我通常有 CommonBundle ,其中包括所有常见内容,如全局CSS,图像,布局等。
后端组织至少还有两个选项:
就我个人而言,我倾向于第一个选项,您可以在我的previous answer中阅读它,但有些人更喜欢为整个后端使用单独的捆绑 - 可能使用admin bundles之一
顺便说一句,捆绑互联是完全可以的 - 你不必让它们彼此独立。例如,JMSDiExtraBundle取决于metadata库和JMSAopBundle,而cg-library依赖于{{3}}。如果你试图保持捆绑包完全独立,那么你最终会得到一大堆单块的代码。
答案 1 :(得分:6)
对于每个项目,我都会从一个CoreBundle开始,我把所有东西放在一起。然后我只是在其中开发功能,随着时间的推移,我会重新评估它 - 如果我有一天可能在其他地方使用此功能(甚至发布到开源),我将其移动到新的包。
值得单独捆绑的功能的“大小”并不重要 - 我已经看到操作系统捆绑包和1个单独的js文件一样大:D有一件事是肯定的 - 将所有东西都塞进一个捆绑包中是不好的,这与这个架构首先实现的全部原因背道而驰!
答案 2 :(得分:0)
我在以下主题中的回答可能对您有所帮助:Symfony 2 : Location of Entities
我不是Symfony2的主人,但我认为我对捆绑设计非常了解;当然,没有普遍的答案,但你可以遵循一些“最佳实践”。
首先,我不认为大捆是一个很好的解决方案;您不再将项目拆分为应用程序,就像使用Symfony1.4一样。你可能会问“但我能用前端/后端逻辑做什么?” ;很容易,使用控制器!
每个捆绑包应该引用一个模块,一个项目墙上的石头。你必须划分你的申请;很多捆绑都不错。当然,不要为每个实体做一个捆绑,这将浪费时间。但想象一下博客应用程序:你会有一个用户包,文章包(管理帖子,类别......),最终是静态页面的包,...
您的捆绑链接不是非逻辑的;您正在构建整个应用程序,因此在这种情况下,它们是链接的。但这里的关键词是“泛化”;您的捆绑包应该能够链接到其他捆绑包,而不仅仅是您的捆绑包。您应该能够在其他项目中重复使用它。
祝你好运!