Git 模块化web应用程序项目结构和;版本控制
我试图为CakePHP编写一个插件集合,但在构建项目的各个部分时遇到了一些问题。我知道这可能已经被问过好几次了,我发现了一些相关的话题,但没有真正令人满意的解决方案 一些要求:Git 模块化web应用程序项目结构和;版本控制,git,cakephp,project-management,gruntjs,amd,Git,Cakephp,Project Management,Gruntjs,Amd,我试图为CakePHP编写一个插件集合,但在构建项目的各个部分时遇到了一些问题。我知道这可能已经被问过好几次了,我发现了一些相关的话题,但没有真正令人满意的解决方案 一些要求: 不同的模块是松散耦合的,但是,它们都依赖于一个核心模块 某些模块实际上会相互交互,例如,如果模块发现仪表板模块存在,则可以注册仪表板页面 核心模块提供PHP基类以及其他模块可以继承/使用的RequireJS模块 为了检查兼容性,最好每个模块有不同的版本标签 我的问题: 我应该如何进行版本控制?我用一个Git存储库做
- 不同的模块是松散耦合的,但是,它们都依赖于一个核心模块
- 某些模块实际上会相互交互,例如,如果模块发现仪表板模块存在,则可以注册仪表板页面
- 核心模块提供PHP基类以及其他模块可以继承/使用的RequireJS模块
- 为了检查兼容性,最好每个模块有不同的版本标签
- 我应该如何进行版本控制?我用一个Git存储库做了一些原型设计,结果有点不令人满意,特别是因为我只能为所有模块分配一个标记。Git子模块是这里的发展方向吗 我还可以为每个模块创建回购协议,这似乎很麻烦,特别是因为对核心模块的更改可能需要对从属模块进行更改,这对在同一分支中执行(或不执行?)是有意义的
- 我应该把Javascript代码放在哪里?由于大多数模块将依赖于一些核心RequireJS模块,因此将它们放在一个地方并让Grunt将缩小的版本分发到各自的CakePHP插件Javascript位置是有意义的 这自然会给SCM带来一些问题
我对这种结构真的没有任何经验-这里的一般方法是什么?这只是我的方法,我希望它能有所帮助。 我应该如何进行版本控制?我用一个Git存储库做了一些原型设计,结果有点不令人满意,特别是因为我只能为所有模块分配一个标记。Git子模块是这里的发展方向吗 我还可以为每个模块创建回购协议,这似乎很麻烦,特别是因为对核心模块的更改可能需要对从属模块进行更改,这对在同一分支中执行(或不执行?)是有意义的 我为每个模块创建一个新的回购协议。在CakePHP中,这些被称为插件。插件对于日志查看器或您使用的基本工具非常有用。您可以使用composer来安装插件,这使得在本地测试后很容易更新应用程序。此外,我工作的公司也使用这种方法。唯一的区别是,我们将插件存储库设置为私有而不是公共,因为我们不希望世界使用该代码,因为它是一个非常私有的CRM应用程序 有关此主题的更多信息:
- 文件:
- 作曲家:
- 插件示例:
如果你对我的“答案”还有一些问题,请在下面的评论中提问。我希望这对您有所帮助。您可以始终使用一个存储库,以后再拆分它们。请注意,插件有一个webroot文件夹(即插件的js应该在插件中)。您不能将核心应用程序创建为标准的CakePHP应用程序,将CakePHP作为Git子模块,并将模块构建为插件吗?这就是我要做的(过去也是如此)。