首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Symfony2中组织包

如何在Symfony2中组织包
EN

Stack Overflow用户
提问于 2014-08-05 12:12:11
回答 3查看 475关注 0票数 0

我们正在用Symfony2开发一个电子商务应用程序。它将具有不同的功能,如产品、销售、客户、运输管理等。

它将有3个子系统:网络前端,管理和一个RESTful应用程序接口。

我们应该按功能还是按子系统组织我们的捆绑包?

EN

回答 3

Stack Overflow用户

发布于 2014-08-05 12:21:14

好吧,这是你的选择!传统上,如果您探索Symfony附带的供应商捆绑包和可用的第三方捆绑包,它们都是按功能组织的。

例如,Sonata Project从一个核心捆绑包开始,并在其他每个捆绑包中提供功能。

当您将系统拆分为bundle时,您应该更关心的是找到一种将它们与其他bundle解耦的方法,以便只需最少的修改即可在其他项目中重用它们,而不是进行更多的配置!您最好的方法(当然只是一种观点)是将所有这些功能单独放在捆绑包中,并将它们与另一个捆绑包捆绑在一起。

您可能会发现,答案将变得主观,这取决于每个开发人员对该问题的看法。

票数 2
EN

Stack Overflow用户

发布于 2014-08-06 00:19:38

我们已经用Sf2开发了一个电子商务解决方案,一开始我们也问过自己同样的问题。我们应该围绕实体或子系统(管理、前端…)组织捆绑包吗??

我们决定采用功能/实体解决方案,并将子系统嵌入到捆绑包中。

让我们做出这一决定的是将功能附加到核心功能的可能性。

例如,我们创建了产品、目录、订单、客户…等捆绑包这些是您可以在任何电子商务解决方案中找到的基本捆绑包。我们还实现了一个将它们捆绑在一起的核心捆绑包。

但我们的一些客户可能想要使用更多的功能/插件,如跟踪,资产/图像,报告。这些捆绑包是可选的,如果我们给我们的客户提供应用程序的代码,我不希望他得到不想要的/无偿的插件代码。因此,这些特性被拆分到不同的包中,并通过接口和配置文件进行链接。捆绑包还包含管理面板等子系统应用程序。如果客户端没有跟踪包,那么管理面板将不会显示跟踪界面,因为它没有在内核中激活。

我希望这能帮助你想起来。

票数 2
EN

Stack Overflow用户

发布于 2014-08-05 12:18:59

根据symfony's documentation,您可以以任何您认为合适的方式来组织包。只要你坚持编码惯例,总体上就是良好的编码实践。尤其是如果您计划将此捆绑包发布给公众(在此场景中可能不是这样)。

也就是说,我建议不要按特性来组织您的项目,因为特性的数量总是会随着时间的推移而增加;而您的项目中的子系统的数量很可能保持不变。

考虑到新的捆绑包是一个要管理的新子项目,如果您正在使用其他捆绑包或库(如Assetic ),那么您将需要在配置中启用每个单独的捆绑包,因此捆绑包的数量越多,管理整个项目就越困难。

所以,如果我处在你的位置,我会把系统分解成子系统。创建一个包,它公开一个RESTful应用程序接口,另一个用于管理员,另一个用于前端。

构建它们的方式是每个包都可以独立存在,以防您需要将项目的每个子系统部署到不同的服务器上,所以这就像将它们从主项目中剥离出来,并将它们集成到一个新的项目中一样简单。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25131066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档