我希望我的软件包附带一个内置的composer-plugin.
我有这样的结构:
composer.json
src/
...
plugin/
composer.json
src/
...
Run Code Online (Sandbox Code Playgroud)
根composer.json
配置如下:
{
"name": "foo/bar",
"type": "library",
"autoload": {
"psr-4": {
"Foo\\Bar\\": "src/"
}
},
"repositories": [
{
"type": "path",
"url": "./tools",
"options": {
"symlink": false
}
}
],
"require": {
"foo/bar-plugin": "*"
}
}
Run Code Online (Sandbox Code Playgroud)
而内置的composer-plugin是plugin/composer.json
这样的:
{
"name": "foo/bar-plugin",
"type": "composer-plugin",
"require": {
"composer-plugin-api": "^1",
"composer/composer": "^1",
"foo/bar": "*"
},
"autoload": {
"psr-4": {
"Foo\\Bar\\Plugin\\": "src/"
}
},
"extra": {
"class": "Foo\\Bar\\Plugin\\MyComposerPlugin"
}
}
Run Code Online (Sandbox Code Playgroud)
注意这里有一个双向依赖 - 插件依赖于foo/bar …
作曲家有没有内置的方法来显示当前项目中的插件列表?或者是寻找作曲家插件某种文本搜索通过唯一的选择composer.json
文件vendor
的东西,如
$ find vendor -name composer.json | xargs grep -i -r 'composer-plugin'
Run Code Online (Sandbox Code Playgroud)