有没有办法交互式安装建议的作曲家包?

时间:2014-11-30 10:29:08

标签: php composer-php dependency-management command-line-interface

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

有没有办法(原生或第三方安装程序),让用户可以选择推荐的套餐?

7 个答案:

答案 0 :(得分:20)

composer suggests | xargs -i composer require {}

答案 1 :(得分:8)

尝试

composer suggests

添加标志-v以使其详细。

这不会安装任何东西,它会列出所有的建议。但是,您可以将其传递给composer require并获得所需的输出。

答案 2 :(得分:5)

据我所知,使用常见的作曲家功能无法实现这一目标。

您可以编写自己的脚本以在post-package-install执行。但是只有在根包composer.json中定义时才会执行脚本(有关如何使用脚本see here的更多信息)。依赖项中定义的脚本不会因安全问题而执行(前一段时间a discussion on the github有关此问题)。

但也许作曲家插件符合您的需求。插件用于扩展作曲家功能(有关插件see here的更多信息)。

作为一种简单的替代方式,我建议定义一个建议的包消息,如: If you need XY functionality run: php composer.phar require vendor/package:2.*然后用户可以使用此命令进行安装。不像你要求的那么舒服,但对我认为的大多数用户来说仍然很容易。

答案 3 :(得分:5)

composer suggests | xargs -L 1 composer require

应该从windows git bash开始工作。

答案 4 :(得分:4)

这个为我做了:)

composer suggests | xargs -I '{}' composer require '{}'

希望它会有所帮助:)

答案 5 :(得分:1)

窗口

    @action(methods=['GET', 'DELETE'], detail=False, url_path='current', url_name='profile-current',
            permission_classes=[IsAuthenticated])
    def get_current_profile(self, request: Request, **kwargs) -> Response:
        if self.request.method == 'DELETE':
        ...

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

答案 6 :(得分:0)

我必须在--list上添加composer suggests标志,否则管道xargs会出错

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