假设我想使用单独的 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",
...
}
所以我最终得到了整个事情,而不仅仅是我想要的选定模块。
是否可以阻止更换?如果是这样,那又如何呢?是否可以不完全忽略"违规"包的依赖关系?
我想这样做的原因有两个:我希望我的供应商目录中的代码更少,并且当我实际上不使用的某些软件包最终被标记为易受攻击或不稳定时,不要收到任何误报。
一个后续问题:当只需要部分框架时,任何人都可以对自动加载器的性能提升(如果有的话)进行权衡吗?
参考:ZF2 清单
一种选择是分叉有问题的第三方模块,更改要求并将拉取请求提交回作者。如果作者不快速合并 PR,您可以同时使用分叉版本。
如果您看到仅使用部分框架可以提高性能,我会感到非常惊讶。