对于我们的自定义CMS,我们已将所有内容提取到不同的模块,其中包括来自用户系统,角色管理器,页面编辑器,主题系统等的所有内容。
系统首先需要运行其中一些。
所以我们的composer.json已经有大约15种不同的“要求”。
现在,我想知道的是,创建一个umberella软件包会更好吗,这个软件包本身不会包含任何内容,但它需要所有不同的部分。
因此,我们可以拥有15种不同的需求,而不是
{
"require": {
"cms/core": "1.0.*"
}
}
我看到的缺点是,对于伞下任何软件包的每次更新,我们必须更新伞包的版本,这意味着虽然框架中的最高部分可能只有2.7.34,但伞可能是26.12。 .116或类似。
如果我们确实创建了一个伞形包,我们应该如何管理它?只是让包需要所有包*
?我们会遇到兼容性问题吗?
答案 0 :(得分:2)
如果它真的不包含文件,你可以这样做并将type设置为元数据包。它确实可以让您的用户生活更轻松。
我建议的是,您需要:1.0.*
每个子包,然后当您将所有内容都添加到1.1
时,您会更改为1.1.*
并标记{{1} }}。如果您的所有版本或多或少都同步,那就是这样。
如果每个组件都是独立版本的,那么它会变得更难。在那时,使用cms/core 1.1.0
要求可能是最好的。这将允许更新(但不包括)到2.0,这意味着您可以确保至少可以协同工作。但是真的没有银弹,这取决于具体情况,你应该在继续之前尝试更多地了解版本控制实践。