Composer — можно ли устанавливать пакеты в & quot; require-dev & quot; глобально с одной командой?

быстрый вопрос, и, пожалуйста, дайте мне знать, если что-либо в моей идее глупо вообще / если есть лучший подход к этому:

В целях создания конвейера непрерывной доставки я хотел бы объявить некоторые пакеты, необходимые для различных типов тестов в Composer, с помощью «require-dev». Однако мне интересно, можно ли было запустить команду установки так, чтобы она установила все пакеты, перечисленные в разделе «require-dev», одной командой?

Было бы неплохо, так как это позволило бы мне легко обновлять тестовые среды и обеспечить глобальный доступ ко всем нужным мне решениям для PHP-тестирования. Я знаю, что это не так много работы, и я бы уже закончил с этим, если бы просто просмотрел их все вручную, но мне было любопытно узнать, есть ли хороший способ сделать это, так как я думаю, что загрузка и все вручную, дать ему права на выполнение и затем переместить его в каталог bin / для глобального доступа — довольно утомительное решение.

2

Решение

Согласно помощи композитора, используя Глобальный Ключевое слово с композитором позволяет запускать команды в глобальном каталоге композитора ($ COMPOSER_HOME).

Это означает, что когда вы бежите composer global require phpunit/phpunit, composer обновит свой глобальный каталог вместо каталога, в котором вы находитесь в данный момент.

так что в моем случае, $ COMPOSER_HOME находится в моем домашнем каталоге /Home/.composer, выполнение вышеуказанной команды воли;

  1. обновите файл /Home/.composer/composer.json.
  2. Загрузите последний пакет phpunit в /Home/.composer/vender
  3. Добавьте символическую ссылку на исполняемый файл phpunit в каталог /Home/.composer/vendor/bin

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

Теперь, если вы предпочитаете, чтобы зависимость была установлена ​​как часть требования разработки, все что вам нужно сделать, это добавить —DEV параметр для команды установки (или обновления), например, composer global require phpunit/phpunit --dev

8

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

Что должна делать эта глобальная установка?

Обычная вещь, которую нужно сделать, это установить Phpunit. Теперь это не поможет вам, если у вас есть два проекта, один из которых использует старую версию 3.7, а новый — 4.6, чтобы установить любую версию глобально.

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

Однако инструменты, которые не требуются или не указаны как обязательные для конкретной версии, такие как PHP Codesniffer, могут быть легко установлены централизованно с помощью

composer global require squizlabs/php_codesniffer

Затем поместите полученный путь ~ / .composer / vendor / bin в переменную среды PATH. Обратите внимание, что ~ не разрешается там, вы должны сделать это самостоятельно.

0

По вопросам рекламы [email protected]