1

我正在尝试为 CakePHP 编写一组插件,并且在构建项目的各个部分时遇到了一些麻烦。我知道这可能已经被问过几次了,我发现了一些关于 SO 的相关主题,但没有真正令人满意的解决方案。

一些要求:

  • 不同的模块是松耦合的,但是,它们都依赖于一个核心模块。

  • 一些模块实际上会相互交互,例如,如果模块发现仪表板模块存在,它们可以注册仪表板页面。

  • 核心模块提供 PHP 基类以及其他可以继承/使用的 RequireJS 模块。

  • 为了检查兼容性,每个模块有不同的版本标签会很好。

我的问题:

  • 我应该如何处理版本控制?我用一个 Git 存储库做了一些原型设计,结果有点让人不满意,尤其是因为我只能为所有模块分配一个标签。Git子模块是去这里的方式吗?

    我还可以为每个模块创建 repos,这看起来很麻烦,特别是因为对核心的更改可能需要对依赖模块进行更改,这在同一个分支中是有意义的(或者不是?)。

  • 我应该把Javascript代码放在哪里?由于大多数模块将依赖于一些核心RequireJS 模块,因此将它们保存在一个地方并让 Grunt 将缩小版本分发到它们各自的 CakePHP-Plugin Javascript 位置是有意义的。

    这自然会给 SCM 带来一些问题。

我对这种结构真的一点经验都没有——这里的一般方法是什么?

4

1 回答 1

0

这只是我的方法,希望对您有所帮助。

我应该如何处理版本控制?我用一个 Git 存储库做了一些原型设计,结果有点让人不满意,特别是因为我只能为所有模块分配一个标签。Git子模块是去这里的方式吗?

我还可以为每个模块创建 repos,这看起来很麻烦,特别是因为对核心的更改可能需要更改依赖模块,这在同一个分支中是有意义的(或者不是?)。

对于每个模块,我都会创建一个新的 Repo。在 CakePHP 中,这些被称为插件。插件对于日志查看器或您使用的基本工具等非常有用。您可以使用 composer 安装插件,这使得在本地测试后更新您的应用程序变得非常容易。此外,我们在我工作的公司使用这种方法。唯一的区别是我们将插件存储库设为私有而不是公共的,因为我们不希望全世界都在使用代码,因为它是一个非常私有的 CRM 应用程序。

有关此主题的更多信息:

我应该把Javascript代码放在哪里?由于大多数模块将依赖于一些核心 RequireJS 模块,因此将它们保存在一个地方并让 Grunt 将缩小版本分发到它们各自的 CakePHP-Plugin Javascript 位置是有意义的。

如果 JavaScript 仅适用于 1 个插件,并且仅适用于 1 个插件,那么您应该将其放在插件的 myplugin/webroot/js/ 文件夹中。因为它属于那里。当您拥有多个插件甚至核心应用程序本身使用的 JavaSript 时,请将其放在您的 app/webroot/js 文件夹中,因为当您作为新开发人员进入您的代码时,这更有意义。

请注意文档在http://book.cakephp.org/2.0/en/plugins.html#plugin-assets上的说明。


如果您对我的“答案”仍有疑问,请在下面的评论中提问。我希望这对您有所帮助。

于 2013-10-08T10:30:50.560 回答