【发布时间】:2019-05-22 14:57:58
【问题描述】:
我正在开发 WordPress 插件。 WordPress 中的每个插件都是一个单独的软件,WordPress 中没有依赖管理,因此插件不知道其他插件及其依赖关系。 PHP 的问题在于使用 Composer 安装的所有依赖项都是全局的。
假设我的插件使用了一个流行的 PHP 库 - Symfony 或 Guzzle,比方说。更受欢迎的库 = 更大的冲突可能性。
有什么方法可以避免冲突吗?我在网上搜索 Composer 沙盒解决方案或类似的解决方案,但我没有找到任何东西 - 所以我担心该解决方案不存在。
另一方面,我可以想象一个不涉及任何火箭科学的解决方案。我可以想象一个预部署构建脚本,它将扫描/vendor 目录并使用自定义前缀为所有依赖项添加前缀。
是否有任何工具或技术可以在 PHP 中提供依赖隔离?
【问题讨论】:
-
@rob006 是的。在该主题中有我的问题的答案。我正在寻找的工具是 php-scoper。谢谢。
-
我在引用的答案3rd party dependency conflict in developing Wordpress Plugin 中添加了更多的 PHP 前缀工具。即:humbug/php-scoper、Interfacelab/namespacer、coenjacobs/mozart、PHP-Prefixer。
标签: php wordpress composer-php