我遇到了一个完全可预测但令人难以置信的烦人和难以解决的问题。作曲家命名空间在WordPress插件开发中的碰撞
我一直在研究开发WordPress插件的PHP框架。它使用Composer进行依赖管理。当然,问题在于,如果在同一个WordPress安装中有两个我的框架实例,那么您有两个供应商文件夹以及框架所需的任何软件包的两个副本。这导致错误。
该框架作为一个单独的插件,然后由任何构建它的应用程序/插件继承。
将供应商文件夹移动到核心框架文件夹?
问题:我不知道如果我将两个composer.json文件和两个composer.phar文件写入同一供应商文件夹并使用相同的自动装载器,会发生什么情况。想必它不会好。除此之外,它不能解决与作曲家软件包相冲突的问题,这些软件包可以被我想要处理的任何其他脚本或插件使用。
所以我卡住了。这是一个可以解决的问题,还是它只是固有的PHP?
为什么你会首先需要两个供应商?只需编辑main'vendor'文件夹的'composer.json'文件,逐个添加所需的依赖关系。删除composer.lock文件,然后再次运行'php composer.phar install'。自动加载器将被更新,并且所有依赖关系将被添加到主供应商目录。在名称冲突的情况下,使用前缀或编辑手动修改文件(如果需要的话)。你只需要复制这个没有可用仓库的依赖关系(即你自己的依赖关系) –
@jdp:为什么不使用wordpress-plugin安装程序作为作曲家?然后,您不仅拥有中央供应商文件夹,还可以使用Composer安装插件。如果您仅将作曲家作为子基础设施使用,则效果不佳。所以至少应该寻找自定义安装程序:https://github.com/composer/installers - http://hakre.wordpress.com/2013/08/03/your-guide-to-composer-in-wordpress/ - - http://composer.rarst.net/ ---如果你加入wordpress stackexchange *循环*聊天,你可能会遇到拉斯特如何知道很多关于这个话题。 – hakre