是否可以对随Composer安装的PHP依赖项进行沙箱处理?

时间:2018-12-22 14:45:46

标签: php wordpress composer-php

我正在开发WordPress插件。 WordPress中的每个插件都是单独的软件,WordPress中没有依赖项管理,因此插件不知道其他插件及其依赖项。 PHP的问题在于,随Composer安装的所有依赖项都是全局的。

让我们想象一下,我的插件使用了一个流行的PHP库-比方说Symfony或Guzzle。受欢迎的图书馆=发生冲突的可能性更大。

有什么办法可以避免冲突?我在网上搜索Composer沙箱解决方案或类似的解决方案,但是我什么都没找到-恐怕该解决方案不存在。

另一方面,我可以想象不涉及任何火箭科学的解决方案。我可以想象一个部署前的构建脚本,它将扫描/vendor目录并为所有依赖项添加一个自定义前缀。

是否有任何工具或技术可以在PHP中提供依赖关系隔离?

2 个答案:

答案 0 :(得分:0)

  

是否有任何工具或技术可以提供依赖关系   PHP中的隔离?

我认为这可能是您的问题的答案: How to get multiple vendor directories with composer?

答案 1 :(得分:0)

每个库都有其自己的名称空间,该名称空间由作者定义。如果您碰巧在不同的插件上使用相同的库,则可能需要派生并更改要包含在插件中的库的名称空间,或者仅使用class_exists。