对于我们的自定义CMS,我们已经将所有内容提取到不同的模块,这包括来自用户系统,角色管理器,页面编辑器,主题系统等的所有内容。
其中一些是系统运行所必需的。
我们的作曲家。Json已经有大约15个不同的"需求"了。
现在,我想知道的是,创建一个伞形包是不是一个更好的主意,这个包本身不包含任何东西,但它需要所有不同的点点滴滴。
所以,不用有15个不同的要求我们只需要
{
"require": {
"cms/core": "1.0.*"
}
}
我看到的缺点是,如果对伞下的任何包进行每次更新,我们必须更新伞包的版本,这意味着虽然框架中最高的部分可能只有2.7.34,但伞很可能是26.12.116或类似的。
如果我们确实创建了一个伞形包,我们应该如何管理它?只要要求所有的包都是*
?我们这样做会遇到兼容性问题吗?
如果它确实不包含文件,您也可以这样做并将类型设置为元包。它可能确实会让你的用户的生活更轻松。
我建议的是,你需要:每个子包的1.0.*
,然后当你把所有东西都撞到1.1
时,你改变为1.1.*
并标记一个cms/core 1.1.0
。这是在所有版本或多或少同步的情况下。
如果每个组件的版本都是独立的,那么它会变得有点困难。在这一点上,也许使用~1.0
要求将是最好的。这将允许更新(但不包括)到2.0,这意味着您可以确保至少可以一起工作。但是实际上并没有什么灵丹妙药,这取决于具体情况,在继续之前,您应该尝试对版本控制实践有更多的了解。