3

我将一个应用程序从 Zend Framework 3 迁移到了 Laminas。在迁移期间,迁移脚本将laminas/laminas-dependency-plugin依赖项添加到composer.json. 之后我删除了这个(通过运行$ composer remove laminas/laminas-dependency-plugin)。目前没有错误,所有测试都是“绿色”的。但尽管如此,我还是想确定,这个包真的只是迁移所需要的,我不必指望错过这个包会带来任何麻烦。

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

4

1 回答 1

6

laminas/laminas-dependency-plugin如果您的某些依赖项需要 Zend Framework 包,则需要此选项。它与作曲家解析挂钩,以将 ZF 包重写为其 Laminas 对应项。

每个迁移的 Laminas 包都提供与 Zend Framework 中最初发布的版本相同的版本,并为完全相同版本的 ZF 包提供composer replace 。

例如,当您的一些依赖项需要laminas/laminas-stratigility而其他一些需要时, zendframework/zend-stratigilitycomposer 将安装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 包,您还可以通过replace在根目录中使用来删除桥接包,composer.json如下所示:

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

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

于 2020-03-25T21:42:55.623 回答