我正在开发WordPress插件。 WordPress中的每个插件都是单独的软件,WordPress中没有依赖项管理,因此插件不知道其他插件及其依赖项。 PHP的问题在于,随Composer安装的所有依赖项都是全局的。
让我们想象一下,我的插件使用了一个流行的PHP库-比方说Symfony或Guzzle。受欢迎的图书馆=发生冲突的可能性更大。
有什么办法可以避免冲突?我在网上搜索Composer沙箱解决方案或类似的解决方案,但是我什么都没找到-恐怕该解决方案不存在。
另一方面,我可以想象不涉及任何火箭科学的解决方案。我可以想象一个部署前的构建脚本,它将扫描/vendor
目录并为所有依赖项添加一个自定义前缀。
是否有任何工具或技术可以在PHP中提供依赖关系隔离?
答案 0 :(得分:0)
是否有任何工具或技术可以提供依赖关系 PHP中的隔离?
我认为这可能是您的问题的答案: How to get multiple vendor directories with composer?
答案 1 :(得分:0)
每个库都有其自己的名称空间,该名称空间由作者定义。如果您碰巧在不同的插件上使用相同的库,则可能需要派生并更改要包含在插件中的库的名称空间,或者仅使用class_exists。