我正在开发一个WordPress插件项目。这是我的目录结构:
├── src/
│ ├── plugin-name.php
│ └── readme.txt
├── tests/
└── ...
我想在插件中包含一个composer.json文件,以便用户可以根据需要安装Composer。例如:
├── src/
│ ├── composer.json
│ ├── plugin-name.php
│ └── readme.txt
├── tests/
└── ...
但是当我单元测试插件时,我也想使用vfsStream
组件。这意味着我需要在我的root中的composer.json文件中要求vfsStream
。例如:
├── src/
│ ├── composer.json
│ ├── plugin-name.php
│ └── readme.txt
├── tests/
├── composer.json
└── ...
我不确定单个项目是否可以有2个composer.json文件。有2个composer.json文件正确的方法去做吗?
答案 0 :(得分:2)
在项目根目录中有一个composer.json,并使用require-dev
答案 1 :(得分:0)
我认为最好的方法是将实际的Wordpress插件转换为Composer包,然后在开发模式项目中使用它。
唯一的区别是它不会出现在' src'目录但隐藏在“供应商”中。 。目录
AFAIK,Composer不处理嵌套' composer.json'文件,如果有的话。
正确的方式是制作一个' require-dev'部分,像这样:
"require-dev": {
"whoever/vfsStream": "*"
},
这要求人们在安装生产时使用require
标志。
请参阅Using "require-dev" to install packages in composer
如果您使用--no-dev
部分来开发软件包,那么您可以选择不使用它们。他们可以通过“没有 - 开发”。需要你的包裹时标记。
编辑:
如果您使用require-dev
作为软件包的主目录,则可以在您的' composer.json'中进行设置。在自动加载'这样的部分:
src
再次编辑:
看起来使用Composer安装Wordpress插件并非完全没有问题:
A Narrative of Using Composer in a WordPress Plugin
然而,如果你坚持,可能会有这个帖子的伎俩: Using Composer to manage Wordpress themes and plugins