4.7. 为何版本限制与对比符、通配符配合使用是个糟糕的行为?
为何版本限制与对比符、通配符配合使用是个糟糕的行为?
这是一个人们常犯的错误,他们在包里定义了版本限制要求>=2.*
或>=1.1*
。
如果你认真思考过它的意思,你就会知道这么做没有任何意义。如果我们分析一下>=2.*
,你就会发现它包含两种规则:
>=2
表示包版本是 2.0.0 或以上。2.*
表示包版本在 2.0.0(包含)到 3.0.0 (不含)之间。
正如你所看到的,这两条规则都要求包版本 >= 2.0.0,但是它无法确定是否包含 3.0.0 版本。它是应该匹配呢?因为你要求包版本>=2
。还是不应该匹配呢?因为你要求包版本是2.*
。
对于这种情况,Composer 会抛出一个错误,告诉你这是无效的。解决这种问题的简单做法是考虑清楚你的真正意图,然后使用这两条规则的其中之一。
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
推荐文章: