Php 有没有办法以交互方式安装建议的composer软件包?

Php 有没有办法以交互方式安装建议的composer软件包?,php,composer-php,dependency-management,command-line-interface,Php,Composer Php,Dependency Management,Command Line Interface,我想为我的composer软件包的用户提供一个界面来选择和安装任何建议的软件包。似乎没有命令行选项,在API中我只能找到一个列出建议包的方法 是否有任何方法(本机或第三方安装程序)让用户选择建议的软件包?据我所知,使用通用编写器功能无法实现这一点 您可以编写自己的脚本,在post-package安装时执行。但是脚本只有在根包的composer.json中定义时才会执行(有关如何使用脚本的更多信息)。依赖项中定义的脚本不会出于安全考虑而执行(很久以前就有过这种情况) 但也许一个作曲家插件适合你的需

我想为我的composer软件包的用户提供一个界面来选择和安装任何建议的软件包。似乎没有命令行选项,在API中我只能找到一个列出建议包的方法


是否有任何方法(本机或第三方安装程序)让用户选择建议的软件包?

据我所知,使用通用编写器功能无法实现这一点

您可以编写自己的脚本,在
post-package安装时执行。但是脚本只有在根包的
composer.json
中定义时才会执行(有关如何使用脚本的更多信息)。依赖项中定义的脚本不会出于安全考虑而执行(很久以前就有过这种情况)

但也许一个作曲家插件适合你的需要。插件用于扩展composer的功能(有关插件的更多信息)

作为一种简单的替代方法,我建议定义一个建议的包消息,例如,如果需要XY功能,请运行:
php composer.phar require vendor/package:2.*
,然后用户可以使用此命令安装它。虽然不像您要求的那样舒适,但我认为对大多数用户来说仍然很简单。

试试看

composer suggests
添加标志-v以使其冗长

这不会安装任何东西,它只会列出所有的建议。但是,您可以通过管道将其传送到composer require并获得所需的输出。

这一个为我完成了:)

composer suggests | xargs -i composer require {}
希望有帮助:)

应该可以在windows git bash上工作。

我必须在
composer建议的
上添加
--list
标志,否则将出现错误传送到xargs

composer suggests --list | xargs -i composer require {}
窗户

for /F  %a in ('composer suggests --all --list') do @echo composer require %a

然后标记行并将粘贴复制到命令行中

我假设这仅适用于linux,快速测试证明它在windows上不起作用。Windows不知道xargsUnix,不仅仅是Linux。在我的例子中,我安装了全局软件包,所以我使用:
composer global建议| xargs-I'{}'composer global require'{}
[LogicException]找不到锁文件。无法读取锁定的软件包建议[--by-package][--by-suggestion][--no-dev][--][]]…@davejal选项,包括从开发者功能在Windows 10上安装Bash,以及在任何版本的Windows上安装cygwin。
composer suggests --list | xargs -i composer require {}
for /F  %a in ('composer suggests --all --list') do @echo composer require %a