zend-framework - 从ZF3迁移到Laminas后是否可以去掉Laminas Dependency Plugin?

标签 zend-framework laminas laminas-dependency-plugin

我将一个应用程序从 Zend Framework 3 迁移到了 Laminas。在迁移过程中,迁移脚本将 laminas/laminas-dependency-plugin 依赖项添加到 composer.json 文件中。之后,我删除了它(通过运行 composer remove laminas/laminas-dependency-plugin)。现在没有错误,所有测试都是“绿色”的,但是我想确定这个包真的只是迁移所需要的,我不必期待这个丢失的包会造成任何麻烦。

成功完成从 Zend Framework 3 到 Laminas 的迁移后,是否需要 laminas/laminas-dependency-plugin 包?

最佳答案

laminas/laminas-dependency-plugin 用于某些依赖项需要 Zend Framework 包的情况。它与 composer resolution Hook ,将 ZF 包重写为 Laminas 对应物。

每个迁移的 Laminas 包都提供与最初在 Zend Framework 中发布的相同版本,并提供 composer replace对于完全相同版本的 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 Framework 类自动加载时将 Zend 命名空间动态别名为 Laminas。

如果你确定你的依赖树中没有任何东西使用 Zend Framework 包,你也可以通过在根 composer.json 中使用 replace 来删除桥接包,如下所示:

    "replace": {
        "laminas/laminas-zendframework-bridge": "*"
    },

请注意,这种方法是一种 hack,除非您严格控制依赖项,否则可能会破坏某些代码。通常它的影响可以忽略不计,删除它不会带来明显的好处。

关于zend-framework - 从ZF3迁移到Laminas后是否可以去掉Laminas Dependency Plugin?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60852468/

相关文章:

centos - Centos 8 上的 Mezzio 骨架应用程序

zend-framework - 从 zend3 更新到 PHP 8.1 后的 Laminas 缓存配置问题

magento2 - Magento 2 运行 Composer 时出现 fatal error :install

zend-framework - Doctrine2 大集合

mysql - 使用 zend Framework 2 更新 mysql 记录

zend-framework - 虚拟机上的 ubuntu 与 ubuntu 安装,有什么区别?

php - 在循环中创建对象时检查内存使用情况?