2013-11-15 32 views
1

我在写一个ZF2应用程序。我从ZendSkeletonApplication开始,我将添加一些模块。我最终可能会在应用程序中几十主要模块:ZF2应用程序:模块的最佳实践工作流程

modules/ 
    Module1/ 
    Module2/ 
     ... 
    ModuleN/ 

问题:我保持一个独立的存储设备(和项目),每个模块的,还是我摇个个起来成一个球,将根应用程序及其所有模块存储在单个存储库中?

奖金问题:我使用git进行源代码管理。如果最好的做法是使用单个存储库,那么为每个模块使用不同的分支是合理的,还是将它们滚动到一个球中并提交适当的提交消息?

回答

0

难道我把每个模块

你很可能单独的资源库(项目)要重新使用任何其他应用程序(无论是现在或将来)这些模块的?如果是,请将它们放在单独的回购站中。否则,你可以把它们放在一个。

如果你最终将它们分开,我建议使用Composer来管理它们。

PS:通过“我使用sit的git”我想你的意思是你使用git来控制源代码。 Git和Subversion都是用于源代码管理的软件。

+0

感谢。太糟糕了,没有一个单一的答案。怎么样:我正在创建一个模块来管理我的用户基础,登录和ACL管理。理论上它是一个可重用的模块,但它将包含我的特定业务逻辑,例如特定于我业务的需求,并且可能不能立即被公司外的人重用。这听起来像保持它的一部分存储库将没事。但是如果我将它作为一个单独的项目,它会增加管理我的整体应用程序的复杂性。两者都有优点和缺点,有点像“捕捉22”的情况。 – Dennis

0

模块更侧重于一组与其他模块密切相关并且依赖于自己的行为(较少或不依赖)的一组活动。如果模块保存在模块文件夹(更具体到您的应用程序)下的独立文件夹中或放置在供应商文件夹下(通用或第三方模块),它会很好用。

如果模块需要更改,可以通过在应用程序中扩展新控制器或模型来重载模块,并添加特定更改。

ZF2的另一个优点是模块的结构是一样的主应用程序的结构,因此它可以被开发为独立的应用程序,后来集成到任何所需的项目