我将一个应用程序从Zend 3迁移到Laminas。在迁移过程中,迁移脚本向composer.json文件中添加了层/层依赖项-插件依赖项。之后,我删除了它(通过运行composer remove laminas/laminas-dependency-plugin)。目前还没有错误,所有的测试都是“绿色”的,但是我想确定的是,这个包确实只需要迁移,而且我不需要因为这个缺少的包而带来任何麻烦。
在成功完成从Zend 3到Laminas的迁移之后,是否需要层板/层流依赖插件包?
发布于 2020-03-25 21:42:55
在某些依赖项需要Zend包的情况下,需要laminas/laminas-dependency-plugin。它勾引到作曲家的决议重写ZF包给它的层叠对应。
每个迁移的Laminas包提供了最初在Zend中发布的相同版本,并为完全相同版本的ZF包提供了作曲家替换。
例如,当您的一些依赖项需要laminas/laminas-stratigility,而另一些依赖项需要zendframework/zend-stratigility时,composer将安装laminas/laminas-stratigility以满足这两个依赖项。依赖插件不会产生任何影响。
然而,当一些依赖者想要zendframework/zend-inputfilter而没有什么需要它的Laminas对应时,composer就会安装zendframework/zend-inputfilter。这就是依赖插件发挥作用并将其重写到laminas/laminas-inputfilter的地方。
如果没有安装zendframework/*包,您就没事了。laminas/laminas-dependency-plugin不是一个硬依赖项,您可以删除它。
另一个兼容性包laminas/laminas-zendframework-bridge负责在触发Zend类自动加载时将Zend命名空间动态别名为Laminas。
如果您确信依赖树中没有任何东西使用Zend包,您也可以通过使用根replace中的composer.json来删除桥接包,如下所示:
"replace": {
"laminas/laminas-zendframework-bridge": "*"
},请注意,这种方法是一种黑客,除非您严格控制依赖项,否则可能会破坏某些代码。一般来说,它的影响可以忽略不计,去除它也不会带来明显的好处。
https://stackoverflow.com/questions/60852468
复制相似问题