我正在开发WordPress插件。WordPress中的每个插件都是独立的软件,WordPress中没有依赖项管理,因此插件不知道其他插件及其依赖项。PHP的问题是,随Composer安装的所有依赖项都是全局的。
让我们想象一下,我的插件使用了一个流行的PHP库- Symfony,或者Guzzle。更受欢迎的库=冲突的可能性更大。
有什么方法可以避免冲突吗?我在网上搜索Composer沙箱或类似的解决方案,但没有找到任何东西-所以我担心解决方案不存在。
另一方面,我可以想象一个不涉及任何火箭科学的解决方案。我可以想象一个部署前构建脚本,它将扫描/vendor目录,并为所有依赖项添加自定义前缀。
有没有任何工具或技术可以在PHP中提供依赖隔离?
发布于 2018-12-22 23:00:02
发布于 2018-12-22 23:03:07
每个库都有自己的命名空间,由作者定义。如果你碰巧在不同的插件上使用相同的库,你可能需要派生并改变你想要包含在插件中的库的名称空间,或者直接使用class_exists。
https://stackoverflow.com/questions/53896602
复制相似问题