我应该创建一个作曲家伞包吗?
问题描述:
对于我们的定制CMS,我们已经提取了所有不同的模块,这包括用户系统,角色管理器,页面编辑器,主题系统等的所有内容。我应该创建一个作曲家伞包吗?
其中几个是系统运行所必需的首先。
所以我们的composer.json已经有大约15个不同的“需求”。
现在,我想知道的是,创建一个umberella包是否更好,这个包本身不包含任何东西,但它需要所有不同的零件。
所以,与其具有15个不同的要求,我们可以只是
{
"require": {
"cms/core": "1.0.*"
}
}
我看,对于每一个更新的保护伞下任何包,我们必须更新版本伞包的缺点,这意味着而框架中的最高部分可能只有2.7.34,这个伞可能在26.12.116或相似。
如果我们确实创建了一个雨伞包,我们应该如何处理这个问题?只需要包裹要求所有包裹作为*
?我们会遇到兼容性问题吗?
答
你可以做到这一点,并设置type metapackage如果它确实不包含任何文件。它确实可以让你的用户的生活更轻松。
我会建议虽然是您需要:每个子包1.0.*
,然后当你碰到的一切1.1
更改为1.1.*
并标记cms/core 1.1.0
。这就是如果你有所有版本或多或少同步。
如果每个组件都独立版本化,那么它会变得更难一些。那时可能使用~1.0
的要求是最好的。这将允许更新(但不包括)到2.0,这意味着你可以确保至少一起工作。但是实际上并没有银弹,这取决于案例,在继续之前,您应该尝试对版本控制实践有所了解。
你不仅应该猜测问题,而且还应该尝试,然后向你报告工作情况。你有没有试过制造这样的雨伞包?它甚至工作吗?自动加载器是否仍然适合您?所有这些只有在面对实际工作时才会弹出的详细问题。因此,在问一般问题之前,请先测试一下自己的细节,这些细节将独自出现,此处的用户无法为您的代码说明。还有关于版本编号:决定如何*你想要版本的主包 – 2013-04-29 23:15:58
@ M8R-1jmw5r我同意,我会报告它是如何工作的,我希望以这种方式解决众包问题/建议,很像在开始之前,你有一个小组会议来讨论一个项目。 – Hailwood 2013-04-29 23:43:21
Stackoverflow不适合这样的小组会议。它是纯粹的Q和A,具有低噪声比,这意味着:没有(或者非常非常少的)讨论,没有意见形成。有一个很好的理由。关于版本控制,这里是一些人已经形成意见的地方:http://semver.org/ – 2013-04-29 23:50:55