我正在尝试为 CakePHP 编写一组插件,并且在构建项目的各个部分时遇到了一些麻烦。我知道这可能已经被问过几次了,我发现了一些关于 SO 的相关主题,但没有真正令人满意的解决方案。
一些要求:
不同的模块是松耦合的,但是,它们都依赖于一个核心模块。
一些模块实际上会相互交互,例如,如果模块发现仪表板模块存在,它们可以注册仪表板页面。
核心模块提供 PHP 基类以及其他可以继承/使用的 RequireJS 模块。
为了检查兼容性,每个模块有不同的版本标签会很好。
我的问题:
我应该如何处理版本控制?我用一个 Git 存储库做了一些原型设计,结果有点让人不满意,尤其是因为我只能为所有模块分配一个标签。Git子模块是去这里的方式吗?
我还可以为每个模块创建 repos,这看起来很麻烦,特别是因为对核心的更改可能需要对依赖模块进行更改,这在同一个分支中是有意义的(或者不是?)。
我应该把Javascript代码放在哪里?由于大多数模块将依赖于一些核心RequireJS 模块,因此将它们保存在一个地方并让 Grunt 将缩小版本分发到它们各自的 CakePHP-Plugin Javascript 位置是有意义的。
这自然会给 SCM 带来一些问题。
我对这种结构真的一点经验都没有——这里的一般方法是什么?