防止meta包替换作曲家包

时间:2015-01-03 12:08:52

标签: php zend-framework2 composer-php

说我想使用单独的ZF2模块,例如zendframework/zend-mvc,而不是整个集合(zendframework/zf2)。假设我还想使用一些依赖于ZF2的第三方模块,但它需要像这样的“元”包:

"require": {
    "zendframework/zendframework": "2.*"
}

而不是仅指定它实际使用的模块。这会产生一种情况,即我的个别包装要求如下:

    "zendframework/zend-modulemanager": "2.3.*",
    "zendframework/zend-mvc": "2.3.*",

被元数据包覆盖:

"replace": {
    ...
    "zendframework/zend-modulemanager": "self.version",
    "zendframework/zend-mvc": "self.version",
    ...
}

所以我最终得到的不是我想要的所选模块。

是否可以防止更换?如果是这样,那怎么样?是否可以完全忽略“违规”包的依赖性?

我想要这样做的原因有两个:我希望我的供应商dir中的代码更少,并且当我实际上没有使用的某些软件包被标记为易受攻击或不稳定时,不会得到任何错误警报。

后续问题:当只需要部分框架时,任何人都可以权衡自动加载器的性能提升(如果有的话)吗?

参考: zf2 manifest

1 个答案:

答案 0 :(得分:0)

一种选择是分叉有问题的第三方模块,更改要求并将拉取请求提交给作者。如果作者没有快速合并PR,您可以在此期间使用您的分叉版本。

如果您仅使用部分框架看到任何性能提升,我会感到非常惊讶。