Есть ли способ интерактивно установить предложенные пакеты композитора?

Я хотел бы предложить пользователям пакета composer интерфейс для выбора и установки любого из предложенный пакеты. Кажется, нет никакой опции командной строки, и в API я могу только найти getSuggests() метод, который перечисляет предложенные пакеты.

Есть ли какой-либо способ (собственный или со сторонним установщиком), чтобы дать пользователю выбор для выбора предлагаемых пакетов?

10

Решение

Насколько я знаю, нет способа достичь этого с помощью обычной функциональности композитора.

Вы можете написать свои собственные сценарии для выполнения на post-package-install, Но сценарии выполняются только если они определены в корневом пакете composer.json (больше информации о том, как использовать скрипты посмотреть здесь). Сценарии, определенные в зависимостях, не выполняются из соображений безопасности (было обсуждение на GitHub Некоторое время назад об этом).

Но, может быть, плагин для композитора соответствует вашим потребностям. Плагины используются для расширения функциональности композиторов (больше информации о плагинах посмотреть здесь).

В качестве простого альтернативного способа я предлагаю определить предлагаемое сообщение пакета, например:
If you need XY functionality run: php composer.phar require vendor/package:2.* И пользователь затем может использовать эту команду для его установки. Не так удобно, как вы просили, но все же достаточно легко для большинства пользователей.

5

Другие решения

composer suggests | xargs -i composer require {}
18

Пытаться

composer suggests

Добавьте флаг -v, чтобы сделать его подробным.

Это ничего не установит, просто перечислит все предложения. Однако вы можете передать его по требованию композитора и получить желаемый результат.

7

composer suggests | xargs -L 1 composer require

Должно работать из windows git bash.

5

Этот сделал это для меня 🙂

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

Надеюсь, это поможет 🙂

4