相关疑难解决方法(0)

如何防止PHP命名空间冲突(预捆绑包)

假设我们有一个PHP项目,其依赖项AB各取决于PHP库X,但是在不同的版本中.

通常,可以使用PHP依赖项管理器(如composer)来解决此冲突,方法是将X包含在与AB兼容的版本中,或者如果无法解决冲突则显示错误.

现在,许多PHP应用程序允许用户只需上传预先捆绑的包并将其提取到特定的插件目录即可安装插件.

如果AB是这样的预捆绑插件并且两者都带有他们自己的库X版本,我们可能会遇到问题,因为没有依赖管理器可用于为我们选择兼容的X或在没有的情况下显示错误.

为了防止由于PHP无法将库X以不同版本加载两次到同一名称空间而导致的任何此类冲突,我们可以将AXBX放入不同的名称空间(这可能很难自动完成我们需要一个PHP解析器...).

我的问题是:

  • 你会如何解决这个问题?你能推荐这种方法还是有更好的解决方案?

php conflict namespaces version composer-php

6
推荐指数
1
解决办法
1047
查看次数

标签 统计

composer-php ×1

conflict ×1

namespaces ×1

php ×1

version ×1