Командная строка / Команды

  1. Глобальные параметры
  2. Коды выхода из процесса
  3. init
  4. install
  5. update
  6. require
  7. remove
  8. global
  9. search
  10. show
  11. outdated
  12. browse/home
  13. suggests
  14. depends
  15. prohibits
  16. validate
  17. status
  18. self-update
  19. config
    1. Применение
    2. Изменение репозиториев
    3. Изменение дополнительных значений
  20. create-project
  21. dump-autoload
  22. clear-cache
  23. licenses
  24. run-script
  25. exec
  26. diagnose
  27. archive
  28. help
  29. Завершение командной строки
  30. Переменные среды
    1. COMPOSER
    2. COMPOSER_ROOT_VERSION
    3. COMPOSER_VENDOR_DIR
    4. COMPOSER_BIN_DIR
    5. http_proxy или HTTP_PROXY
    6. no_proxy
    7. HTTP_PROXY_REQUEST_FULLURI
    8. HTTPS_PROXY_REQUEST_FULLURI
    9. COMPOSER_HOME
      1. COMPOSER_HOME/config.json
    10. COMPOSER_CACHE_DIR
    11. COMPOSER_PROCESS_TIMEOUT
    12. COMPOSER_CAFILE
    13. COMPOSER_AUTH
    14. COMPOSER_DISCARD_CHANGES
    15. COMPOSER_NO_INTERACTION
    16. COMPOSER_ALLOW_SUPERUSER
    17. COMPOSER_MIRROR_PATH_REPOS

Вы уже научились использовать интерфейс командной строки для выполнения некоторых задач. В этой главе описаны все доступные команды.

Чтобы получить помощь из командной строки, просто вызовите composer или composer list, перечислите полный список команд, затем --help в сочетании с любым из них может дать вам больше информации.

Глобальные параметры #

С каждой командой доступны следующие параметры:

  • --verbose (-v): Увеличить количество сообщений.
  • --help (-h): отобразить справочную информацию.
  • --quiet (-q): Не выводить никаких сообщений.
  • --no-interaction (-n): Не задавать никаких интерактивных вопросов.
  • --no-plugins: отключает плагины.
  • --working-dir (-d): Если указано, используйте данный каталог в качестве рабочего каталога.
  • --profile: отображение времени и информации об использовании памяти
  • --ansi: принудительный вывод ANSI.
  • --no-ansi: отключить вывод ANSI.
  • --version (-V): отобразить эту версию приложения.

Коды выхода из процесса #

  • 0: OK
  • 1: Общий / неизвестный код ошибки
  • 2: Код ошибки обработки зависимостей

init #

В главе «Библиотеки» мы рассмотрели, как вручную создать composer.json. Также доступна команда init, которая упрощает это.

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

php composer.phar init

Опции

  • --name: имя пакета.
  • --description: Описание пакета.
  • --author: имя автора пакета.
  • --type: Тип упаковки.
  • --homepage: Начальная страница пакета.
  • --require: пакет, требующий ограничения версии. Должно быть в формате foo/bar:1.0.0.
  • --require-dev: Требования к разработке, см. --require.
  • --stability (-s): Значение поля minimum-stability.
  • --license (-l): Лицензия на пакет.
  • --repository: предоставить один (или несколько) пользовательских репозиториев. Они будут сохранены в сгенерированном composer.json и использованы для автоматического завершения при запросе списка требуемых. Каждый репозиторий может быть либо URL-адресом HTTP, указывающим на репозиторий composer, либо строкой JSON, которая аналогична тому, что принимает ключ репозиториев.

install #

Команда install считывает файл composer.json из текущего каталога, решает зависимости и устанавливает их в vendor.

php composer.phar install

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

Если файл composer.lock отсутствует, Composer создаст его после разрешения зависимостей.

Опции

  • --prefer-source: Есть два способа загрузки пакета: source и dist. Для стабильных версий Composer будет использовать dist по умолчанию. Источник - это репозиторий управления версиями. Если включен параметр -prefer-source, Composer будет устанавливать source, если он есть. Это полезно, если вы хотите внести исправление в проект и получить непосредственно локальный git-клон зависимости.
  • --prefer-dist: реверс -prefer-source, Composer будет устанавливать с dist, если это возможно. Это может ускорить процесс установки существенно на серверах сборки и других случаях использования, где вы обычно не запускаете обновления поставщиков. Это также способ обойти проблемы с git, если у вас нет надлежащей настройки.
  • --dry-run: если вы хотите выполнить установку без фактической установки пакета, вы можете использовать --dry-run. Это будет имитировать установку и показать вам, что произойдет.
  • --dev: Установить пакеты, перечисленные в require-dev (это поведение по умолчанию).
  • --no-dev: Пропустить установку пакетов, указанных в require-dev. Генерация автозагрузчика пропускает правила автозагрузки.
  • --no-autoloader: пропустить автозагрузчик.
  • --no-scripts: пропускает выполнение сценариев, определенных в composer.json.
  • --no-progress: Удаляет отображение прогресса, которое не может обрабатывать обратные символы.
  • --no-suggest: пропускает предложенные пакеты в вывод.
  • --optimize-autoloader (-o): преобразовать автозагрузку PSR-0/4 в classmap, чтобы получить более быстрый автозагрузчик. Это рекомендуется, особенно для производства, но не может тратить время на запуск.
  • --classmap-authoritative (-a): Автозагрузка классов только из класса. Неявно включает опцию --optimize-autoloader.
  • -apcu-autoloader: использовать APCu для кэширования найденных / не найденных классов.
  • --ignore-platform-reqs: игнорировать требования php, hhvm, lib-* и ext-* и принудительно выполнить установку, даже если локальная машина их не выполняет. См. Также параметр конфигурации платформы.

update #

Чтобы получить последние версии зависимостей и обновить файл composer.lock, вы должны использовать команду update.

php composer.phar update

Это позволит решить все зависимости проекта и записать точные версии в composer.lock.

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

php composer.phar update vendor/package vendor/package2

Вы также можете использовать подстановочные знаки для обновления нескольких пакетов одновременно:

php composer.phar update vendor/*

Опции

  • --prefer-source: устанавливать пакеты из источника, когда они доступны.
  • --prefer-dist: устанавливать пакеты из dist, когда они доступны.
  • --dry-run: Имитировать команду, фактически ничего не делая.
  • --dev: Установить пакеты, перечисленные в require-dev (это поведение по умолчанию).
  • --no-dev: Пропустить установку пакетов, указанных в require-dev. Генерация автозагрузчика пропускает правила автозагрузки.
  • --lock: обновляет хеш-файл блокировки, чтобы подавить предупреждение о том, что файл блокировки устарел.
  • --no-autoloader: пропустить автозагрузчик.
  • --no-scripts: пропускает выполнение сценариев, определенных в composer.json.
  • --no-progress: Удаляет отображение прогресса, которое может запутаться в некоторых терминалах или сценариях, которые не обрабатывают обратные символы.
  • --no-suggest: пропускает предложенные пакеты в вывод.
  • --with-dependencies: Добавить также все зависимости от белых списков в белый список.
  • --optimize-autoloader (-o): преобразовать автозагрузку PSR-0/4 в classmap, чтобы получить более быстрый автозагрузчик. Это рекомендуется, особенно для производства, но может занять немного времени для запуска, так что в настоящее время это не сделано по умолчанию.
  • --classmap-authoritative (-a): Автозагрузка классов только из класса. Неявно включает опцию --optimize-autoloader.
  • -apcu-autoloader: использовать APCu для кэширования найденных / не найденных классов.
  • --ignore-platform-reqs: игнорировать требования php, hhvm, lib- * и ext- * и принудительно выполнить установку, даже если локальная машина их не выполняет. См. Также параметр конфигурации платформы.
  • --prefer-stable: предпочитает стабильные версии зависимостей.
  • --prefer-lower: предпочитает самые низкие версии зависимостей. Полезно для тестирования минимальных версий требований, обычно используемых с --prefer-stable.
  • --interactive: Интерактивный интерфейс с автозаполнением для выбора пакетов для обновления.
  • --root-reqs: ограничивает обновление для ваших зависимостей первой степени.

require #

Команда require добавляет новые пакеты в файл composer.json из текущего каталога. Если файл не существует, он будет создан на лету.

php composer.phar require

После добавления / изменения требований измененные требования будут установлены или обновлены.

Если вы не хотите выбирать требования интерактивно, вы можете просто передать их команде.

php composer.phar require vendor/package:2.* vendor/package2:dev-master

Опции

  • --dev: Добавить пакеты в require-dev.
  • --prefer-source: устанавливать пакеты из source, когда они доступны.
  • --prefer-dist: устанавливать пакеты из dist, когда они доступны.
  • --no-progress: Удаляет отображение прогресса, которое может запутаться в некоторых терминалах или сценариях, которые не обрабатывают обратные символы.
  • --no-suggest: пропускает предложенные пакеты в вывод.
  • --no-update: Отключает автоматическое обновление зависимостей.
  • --no-scripts: пропускает выполнение сценариев, определенных в composer.json.
  • --update-no-dev: запустить обновление зависимостей с параметром --no-dev.
  • --update-with-dependencies: также обновлять зависимости от новых необходимых пакетов.
  • --ignore-platform-reqs: игнорировать требования php, hhvm, lib-* и ext-* и принудительно выполнить установку, даже если локальная машина их не выполняет. См. Также параметр конфигурации платформы.
  • --prefer-stable: предпочитает стабильные версии зависимостей.
  • --prefer-lower: предпочитает самые низкие версии зависимостей. Полезно для тестирования минимальных версий требований, обычно используемых с --prefer-stable.
  • --sort-packages: Хранить пакеты в формате composer.json.
  • --optimize-autoloader (-o): преобразовать автозагрузку PSR-0/4 в classmap, чтобы получить более быстрый автозагрузчик. Это рекомендуется, особенно для производства, но может занять немного времени для запуска, так что в настоящее время это не сделано по умолчанию.
  • --classmap-authoritative (-a): Автозагрузка классов только из класса. Неявно включает опцию --optimize-autoloader.
  • --apcu-autoloader: использовать APCu для кэширования найденных / не найденных классов.

remove #

Команда remove удаляет пакеты из файла composer.json из текущего каталога.

php composer.phar remove vendor/package vendor/package2

После удаления требований измененные требования будут удалены.

Опции

  • --dev: Удалить пакеты из require-dev.
  • --no-progress: Удаляет отображение прогресса, которое может запутаться в некоторых терминалах или сценариях, которые не обрабатывают обратные символы.
  • --no-update: Отключает автоматическое обновление зависимостей.
  • --no-scripts: пропускает выполнение сценариев, определенных в composer.json.
  • --update-no-dev: запустить обновление зависимостей с параметром --no-dev.
  • --update-with-dependencies: также обновлять зависимости удаленных пакетов.
  • --ignore-platform-reqs: игнорировать требования php, hhvm, lib-* и ext-* и принудительно выполнить установку, даже если локальная машина их не выполняет. См. Также параметр конфигурации платформы.
  • --optimize-autoloader (-o): преобразовать автозагрузку PSR-0/4 в classmap, чтобы получить более быстрый автозагрузчик. Это рекомендуется, особенно для производства, но может занять немного времени для запуска, так что в настоящее время это не сделано по умолчанию.
  • --classmap-authoritative (-a): Автозагрузка классов только из класса. Неявно включает опцию --optimize-autoloader.
  • -apcu-autoloader: использовать APCu для кэширования найденных / не найденных классов.

global #

Глобальная команда позволяет запускать другие команды, такие как install, require или update, как если бы вы запускали их из каталога COMPOSER_HOME.

Это просто помощник для управления проектом, хранящимся в центральном расположении, который может содержать инструменты CLI или плагины Composer, которые вы хотите иметь везде.

Это можно использовать для установки утилит CLI глобально. Вот пример:

php composer.phar global require fabpot/php-cs-fixer

Теперь бинарный файл php-cs-fixer доступен во всем мире. Просто убедитесь, что ваш глобальный каталог двоичных файлов производителя находится в переменной среды $PATH, вы можете получить его местоположение с помощью следующей команды:

php composer.phar global config bin-dir --absolute

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

php composer.phar global update

search #

Команда поиска позволяет выполнять поиск в репозиториях текущего проекта. Обычно это будет просто упаковщик. Вы просто передаете ему условия, которые вы хотите найти.

php composer.phar search monolog

Вы также можете искать несколько терминов, передавая несколько аргументов.

Опции

  • --only-name (-N): Искать только по названию.
  • --type (-t): поиск определенного типа пакета.

show #

Чтобы вывести список всех доступных пакетов, вы можете использовать команду show.

php composer.phar show

Чтобы отфильтровать список, вы можете передать маску пакета с помощью подстановочных знаков.

php composer.phar show monolog/*

monolog/monolog 1.19.0 Sends your logs to files, sockets, inboxes, databases and various web services

Если вы хотите увидеть детали определенного пакета, вы можете передать имя пакета.

php composer.phar show monolog/monolog

name : monolog/monolog
versions : master-dev, 1.0.2, 1.0.1, 1.0.0, 1.0.0-RC1
type : library
names : monolog/monolog
source : [git] https://github.com/Seldaek/monolog.git 3d4e60d0cbc4b888fe5ad223d77964428b1978da
dist : [zip] https://github.com/Seldaek/monolog/zipball/3d4e60d0cbc4b888fe5ad223d77964428b1978da 3d4e60d0cbc4b888fe5ad223d77964428b1978da
license : MIT

autoload
psr-0
Monolog : src/

requires
php >=5.3.0

Вы даже можете передать версию пакета, в которой будут указаны подробности этой конкретной версии.

php composer.phar show monolog/monolog 1.0.2

Опции

  • --all: Перечислить все пакеты, доступные во всех ваших репозиториях.
  • --installed (-i): Список установленных пакетов (это включено по умолчанию и устарело).
  • --platform (-p): Список только пакетов платформы (php и расширения).
  • --available (-a): Список только доступных пакетов.
  • --self (-s): Перечислить информацию о корневом пакете.
  • --name-only (-N): только имена пакетов.
  • --path (-P): Список путей пакетов.
  • --tree (-t): Перечислите ваши зависимости как дерево. Если вы передадите имя пакета, оно покажет дерево зависимостей для этого пакета.
  • --latest (-l): Список всех установленных пакетов, включая их последнюю версию.
  • --outdated (-o): Предполагается --latest, но здесь перечислены только пакеты, которые имеют более новую версию.
  • --minor-only (-m): использовать с --latest. Показывает только пакеты с незначительными обновлениями, совместимыми с SemVer.
  • --direct (-D): ограничивает список пакетов вашими прямыми зависимостями.
  • --strict: возвращает ненулевой код завершения, когда есть устаревшие пакеты.
  • --format (-f): позволяет выбрать между текстовым (по умолчанию) или выходным форматом json.

outdated #

Команда outdated показывает список установленных пакетов, которые имеют доступные обновления, включая их текущие и последние версии. Это в основном псевдоним для composer show -lo.

Цветовое кодирование таково:

  • green (=): зависимость находится в последней версии и обновлена.
  • yellow (~): у Dependency есть новая версия, которая включает в себя обратную совместимость с breaks в соответствии с semver, поэтому обновляйте, если можете, но это может быть связано с работой.
  • red (!): У Dependency есть новая версия, совместимая с semver, и вы должны ее обновить.

Опции

  • --all (-a): показать все пакеты, а не только устаревшие (псевдоним для composer show -l).
  • --direct (-D): ограничивает список пакетов вашими прямыми зависимостями.
  • --strict: возвращает ненулевой код завершения, если какой-либо пакет устарел.
  • --minor-only (-m): Показывает пакеты, которые имеют незначительные обновления, совместимые с SemVer.
  • --format (-f): позволяет выбрать между текстовым (по умолчанию) или выходным форматом json.

browse / home #

browse (псевдоним home) открывает URL-адрес репозитория пакета или домашнюю страницу в вашем браузере.

Опции

  • --homepage (-H): откройте домашнюю страницу, а не URL-адрес репозитория.
  • -show (-s): показывать только URL-адрес домашней страницы или репозитория.

suggests #

Перечисляет все пакеты, предлагаемые установленным набором пакетов. Вы можете опционально передать одно или несколько имен пакетов в формате vendor/package, чтобы ограничить вывод предложениями только этих пакетов.

Используйте флаги --by-package или --by-suggestion для группировки вывода пакета, предлагающего предложения или предложенные пакеты соответственно.

Используйте флаг --verbose (-v), чтобы отобразить предлагаемый пакет и причину предложения. Это подразумевает --by-package -by-suggestion, показывая оба списка.

Опции

  • --by-package: выводить группы, предлагая пакет.
  • --by-suggestion: Группы выводятся по предложенному пакету.
  • --no-dev: исключает предложения пакетов require-dev.

depends #

Команда depends сообщает, какие другие пакеты зависят от определенного пакета. Как и при установке, отношения require-dev рассматриваются только для корневого пакета.

php composer.phar depends doctrine/lexer
 doctrine/annotations v1.2.7 requires doctrine/lexer (1.*)
 doctrine/common v2.6.1 requires doctrine/lexer (1.*)

Вы можете указать ограничение версии после пакета, чтобы ограничить поиск.

Добавьте флаг --tree или -t, чтобы показать рекурсивное дерево, почему пакет зависит, например:

php composer.phar depends psr/log -t
psr/log 1.0.0 Common interface for logging libraries
|- aboutyou/app-sdk 2.6.11 (requires psr/log 1.0.*)
| `- __root__ (requires aboutyou/app-sdk ^2.6)
|- monolog/monolog 1.17.2 (requires psr/log ~1.0)
| `- laravel/framework v5.2.16 (requires monolog/monolog ~1.11)
| `- __root__ (requires laravel/framework ^5.2)
`- symfony/symfony v3.0.2 (requires psr/log ~1.0)
 `- __root__ (requires symfony/symfony ^3.0)

Опции

  • --recursive (-r): рекурсивно разрешает до корневого пакета.
  • --tree (-t): печатает результаты как вложенное дерево, подразумевает -r.

prohibits #

Команда prohibits указывает, какие пакеты блокируют установку данного пакета. Укажите ограничение версии, чтобы проверить, могут ли обновления выполняться в вашем проекте, и если нет, то почему нет. См. Следующий пример:

php composer.phar prohibits symfony/symfony 3.1
 laravel/framework v5.2.16 requires symfony/var-dumper (2.8.*|3.0.*)

Обратите внимание, что вы также можете указать требования к платформе, например, чтобы проверить, можете ли вы обновить свой сервер до PHP 8.0:

php composer.phar prohibits php:8
 doctrine/cache v1.6.0 requires php (~5.5|~7.0)
 doctrine/common v2.6.1 requires php (~5.5|~7.0)
 doctrine/instantiator 1.0.5 requires php (>=5.3,<8.0-DEV)

Как и depends, вы можете запросить рекурсивный поиск, который будет отображать все пакеты в зависимости от пакетов, которые вызывают конфликт.

Опции

  • --recursive (-r): рекурсивно разрешает до корневого пакета.
  • --tree (-t): печатает результаты как вложенное дерево, подразумевает -r.

validate #

Вы всегда должны запускать команду validate до того, как вы зафиксируете свой файл composer.json, и перед тем как пометить выпуск. Он проверит, действителен ли ваш composer.json.

php composer.phar validate

Опции

  • --no-check-all: Не выводить предупреждение, если требования в composer.json используют несвязанные ограничения версии.
  • --no-check-lock: не выводить сообщение об ошибке, если файл composer.lock существует и не обновлен.
  • --no-check-publish: не выводить сообщение об ошибке, если composer.json не подходит для публикации в качестве пакета на Packagist, но в остальном действует.
  • --with-dependencies: также проверьте, что composer.json всех установленных зависимостей.
  • --strict: возвращает ненулевой код завершения для предупреждений, а также ошибок.

status #

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

php composer.phar status

С опцией --verbose вы получите дополнительную информацию о том, что было изменено:

php composer.phar status -v

You have changes in the following dependencies:
vendor/seld/jsonlint:
 M README.mdown

self-update #

Чтобы обновить Composer до последней версии, просто запустите команду self-update. Он заменит ваш composer.phar на последнюю версию.

php composer.phar self-update

Если вы хотите обновить конкретную версию, просто укажите ее:

php composer.phar self-update 1.0.0-alpha7

Если вы установили Composer для всей вашей системы (см. Глобальную установку), вам может потребоваться запустить команду с привилегиями root.

sudo -H composer self-update

Опции

  • --rollback (-r): откат до последней версии, которую вы установили.
  • --clean-backups: удалить старые резервные копии во время обновления. Это делает текущую версию Composer единственной резервной копией, доступной после обновления.
  • --no-progress: не выводить результаты загрузки.
  • --update-keys: запрашивать у пользователя обновление ключа.
  • --stable: Принудительное обновление стабильного канала.
  • --preview: Принудительное обновление канала предварительного просмотра.
  • --snapshot: принудительно обновить канал моментального снимка.

config #

Команда config позволяет вам редактировать настройки и репозитории компоновщика в локальном файле composer.json или глобальном файле config.json.

Кроме того, он позволяет редактировать большинство свойств в местном composer.json.

php composer.phar config --list

Применение #

config [options] [setting-key] [setting-value1] ... [setting-valueN]

setting-key - это имя опции конфигурации, а setting-value1 - значение конфигурации. Для параметров, которые могут принимать массив значений (например, github-protocols), допускается использование нескольких аргументов параметра.

Вы также можете редактировать значения следующих свойств:

description, homepage, keywords, license, minimum-stability, name, prefer-stable, type и version.

Для правильных параметров конфигурации см. Главу Конфигурация.

Опции

  • --global (-g): использовать глобальный конфигурационный файл, расположенный по умолчанию в $COMPOSER_HOME/config.json. Без этой опции эта команда влияет на локальный файл composer.json или файл, указанный в файле.
  • --editor (-e): Откройте локальный файл composer.json, используя текстовый редактор, как это определено в переменной EDITOR env. С параметром --global открывается глобальный файл конфигурации.
  • --auth (-a): Влиять на конфигурационный файл auth (используется только для --editor).
  • --unset: Удаляет элемент конфигурации с именем setting-key.
  • --list (-l): Показывать список текущих конфигурационных переменных. С опцией --global здесь указывается только глобальная конфигурация.
  • --file="..." (-f): работать с определенным файлом вместо composer.json. Обратите внимание, что это нельзя использовать в сочетании с опцией --global.
  • --absolute: возвращает абсолютные пути при получении значений конфигурации *-dir вместо относительных.

Изменение репозиториев #

В дополнение к изменению раздела конфигурации команда config также поддерживает внесение изменений в секцию репозиториев, используя ее следующим образом:

php composer.phar config repositories.foo vcs https://github.com/foo/bar

Если вашему репозиторию требуются дополнительные параметры конфигурации, вы можете вместо этого передать свое представление JSON:

php composer.phar config repositories.foo '{"type": "vcs", "url": "http://svn.example.org/my-project/", "trunk-path": "master"}'

Изменение дополнительных значений #

В дополнение к изменению раздела конфигурации, команда config также поддерживает внесение изменений в дополнительный раздел, используя его следующим образом:

php composer.phar config extra.foo.bar value

Точки указывают на вложенность массивов, однако допускается максимальная глубина в 3 уровня. Выше было бы установить "extra": {"foo": {"bar": "value"}}.

create-project #

Вы можете использовать Composer для создания новых проектов из существующего пакета. Это эквивалент выполнения git clone/svn checkout, сопровождаемого "установкой композитора" ("composer install") у поставщиков.

Для этого есть несколько приложений:

  1. Вы можете развернуть пакеты приложений.
  2. Вы можете проверить любой пакет и начать разработку патчей, например.
  3. Проекты с несколькими разработчиками могут использовать эту функцию, чтобы загружать начальное приложение для разработки.

Чтобы создать новый проект с помощью Composer, вы можете использовать команду create-project. Передайте ему имя пакета и каталог для создания проекта. Вы также можете указать версию в качестве третьего аргумента, иначе будет использоваться последняя версия.

Если каталог в настоящее время не существует, он будет создан во время установки.

php composer.phar create-project doctrine/orm path 2.2.*

Кроме того, можно выполнить команду без параметров в каталоге с существующим файлом composer.json для загрузки проекта.

По умолчанию команда проверяет наличие пакетов на сайте packagist.org.

Опции

  • --stability (-s): Минимальная стабильность пакета. По умолчанию - stable.
  • --prefer-source: устанавливать пакеты из source, когда они доступны.
  • --prefer-dist: устанавливать пакеты из dist, когда они доступны.
  • --repository: предоставить пользовательский репозиторий для поиска пакета, который будет использоваться вместо packagist. Может представлять собой либо URL-адрес HTTP, указывающий на репозиторий composer, либо путь к локальному файлу packages.json, либо строку JSON, которая аналогична тому, что принимает ключ репозиториев.
  • --dev: Установить пакеты, указанные в require-dev.
  • --no-dev: Отключает установку пакетов require-dev.
  • --no-scripts: Отключает выполнение сценариев, определенных в корневом пакете.
  • --no-progress: Удаляет отображение прогресса, которое может запутаться в некоторых терминалах или сценариях, которые не обрабатывают обратные символы.
  • --keep-vcs: Пропустить удаление метаданных VCS для созданного проекта. Это особенно полезно, если вы запускаете команду в неинтерактивном режиме.
  • --no-install: Отключает установку поставщиков.
  • --ignore-platform-reqs: игнорировать требования php, hhvm, lib-* и ext-* и принудительно выполнить установку, даже если локальная машина их не выполняет.

dump-autoload #

Если вам нужно обновить автозагрузчик, например, из-за новых классов в пакете classmap, вы можете использовать «dump-autoload» для этого без необходимости проходить установку или обновление.

Кроме того, он может сбрасывать оптимизированный автозагрузчик, который конвертирует пакеты PSR-0/4 в классы класса для повышения производительности. В больших приложениях со многими классами автозагрузчик может занимать значительную часть времени каждого запроса. Использование classmaps для всего менее удобно в разработке, но, используя эту опцию, вы по-прежнему можете использовать PSR-0/4 для удобства и классов для повышения производительности.

Опции

  • --no-scripts: пропускает выполнение всех сценариев, определенных в файле composer.json.
  • --optimize (-o): преобразовать автозагрузку PSR-0/4 в classmap, чтобы получить более быстрый автозагрузчик. Это рекомендуется, особенно для производства, но может занять немного времени для запуска, так что в настоящее время это не сделано по умолчанию.
  • --classmap-authoritative (-a): Автозагрузка классов только из класса. Неявно включает --optimize.
  • --apcu: использовать APCu для кэширования найденных / не найденных классов.
  • --no-dev: Отключает правила автозагрузки-dev.

clear-cache #

Удаляет все содержимое из каталогов кэша Composer.

licenses #

Показывает имя, версию и лицензию каждого установленного пакета. Используйте --format=json, чтобы получить машиночитаемый вывод.

Опции

  • --format: формат вывода: текст или json (по умолчанию: «текст»)
  • --no-dev: удалить зависимости от выхода

run-script #

Опции

  • --timeout: установить тайм-аут сценария в секундах или 0 без тайм-аута.
  • --dev: Устанавливает режим dev.
  • --no-dev: отключить режим.
  • --list (-l): Список пользовательских скриптов.

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

exec #

Выполняет проданный двоичный / скрипт. Вы можете выполнить любую команду, и это обеспечит, чтобы каталог bin-dir Composer был помещен в вашу PATH до запуска команды.

Опции

  • --list (-l): Список доступных бинарных файлов композитора.

diagnose #

Если вы считаете, что обнаружили ошибку или что-то странно себя ведет, вы можете запустить команду diagnose, чтобы выполнить автоматическую проверку многих распространенных проблем.

php composer.phar diagnose

archiv #

Эта команда используется для создания zip / tar-архива для заданного пакета в данной версии. Его также можно использовать для архивирования всего проекта без исключенных / проигнорированных файлов.

php composer.phar archive vendor/package 2.0.21 --format=zip

Опции

  • --format (-f): формат результирующего архива: tar или zip (по умолчанию: «tar»)
  • --dir: записать архив в этот каталог (по умолчанию: «.»)
  • --file: записать архив с заданным именем файла.

help #

Чтобы получить дополнительную информацию об определенной команде, просто используйте help.

php composer.phar help install

Завершение командной строки #

Завершение работы с командной строкой можно включить с помощью следующих инструкций на этой странице.

Переменные среды #

Вы можете установить ряд переменных среды, которые переопределяют определенные параметры. По возможности рекомендуется указывать эти параметры в разделе config файла composer.json. Стоит отметить, что переменные всегда будут иметь приоритет над значениями, указанными в composer.json.

COMPOSER#

Установив переменную COMPOSER, можно задать имя файла composer.json в другом месте.

Например:

COMPOSER=composer-other.json php composer.phar install

Сгенерированный файл блокировки будет использовать то же имя: composer-other.lock в этом примере.

COMPOSER_ROOT_VERSION #

Установив эту переменную, вы можете указать версию корневого пакета, если она не может быть угадана из информации VCS и не присутствует в composer.json.

COMPOSER_VENDOR_DIR #

Установив эту переменную, вы можете заставить Composer устанавливать зависимости в каталог, отличный от поставщика.

COMPOSER_BIN_DIR #

Установив эту опцию, вы можете изменить каталог bin (Vendor Binaries) на что-то другое, чем vendor/bin.

http_proxy или HTTP_PROXY #

Если вы используете HTTP-прокси, вы можете использовать стандартные http_proxy или HTTP_PROXY env vars. Просто укажите URL вашего прокси. Многие операционные системы уже установили эту переменную для вас.

Использование http_proxy (lowercased) или даже определение обоих может быть предпочтительным, поскольку некоторые инструменты, такие как git или curl, будут использовать только версию http_proxy с нижним пределом. Кроме того, вы также можете определить git-прокси, используя git config -global http.proxy .

Если вы используете Composer в контексте, отличном от CLI (то есть, интеграции в CMS или аналогичном случае использования) и нуждаетесь в поддержке прокси, укажите вместо него переменную среды CGI_HTTP_PROXY. См. httpoxy.org для получения дополнительной информации.

no_proxy #

Если вы находитесь за прокси-сервером и хотите отключить его для определенных доменов, вы можете использовать env var no_proxy. Просто установите его в список разделенных запятыми доменов, для которых прокси не следует использовать.

Env var принимает домены, IP-адреса и блоки IP-адресов в нотации CIDR. Вы можете ограничить фильтр определенным портом (например, 80). Вы также можете установить его * для игнорирования прокси для всех HTTP-запросов.

HTTP_PROXY_REQUEST_FULLURI #

Если вы используете прокси, но он не поддерживает флаг request_fulluri, тогда вы должны установить это для env var в false или 0, чтобы запретить Composer устанавливать параметр request_fulluri.

HTTPS_PROXY_REQUEST_FULLURI #

Если вы используете прокси-сервер, но он не поддерживает флаг request_fulluri для HTTPS-запросов, то вы должны установить это для env var в false или 0, чтобы предотвратить настройку Composer параметра request_fulluri.

COMPOSER_HOME #

COMPOSER_HOME var позволяет вам изменить домашний каталог Composer. Это скрытый глобальный (для пользователя на компьютере) каталог, который используется всеми проектами.

По умолчанию это указывает на C:\Users\<пользователь>\AppData\Roaming\Composer на Windows и /Users//.composer на OSX. На системах nix, которые следуют базовым спецификациям XDG, он указывает на $XDG_CONFIG_HOME/composer. На других системах nix это указывает на /home//.composer.

COMPOSER_HOME/config.json #

Вы можете поместить файл config.json в то место, куда указывает COMPOSER_HOME. Композитор объединит эту конфигурацию с composer.json вашего проекта при запуске команд установки и обновления.

Этот файл позволяет вам устанавливать репозитории и конфигурацию для пользовательских проектов.

Если глобальная конфигурация соответствует локальной конфигурации, всегда выигрывает локальная конфигурация в проекте composer.json.

COMPOSER_CACHE_DIR #

COMPOSER_CACHE_DIR var позволяет вам изменить каталог кеширования Composer, который также настраивается с помощью параметра cache-dir.

По умолчанию он указывает на $COMPOSER_HOME/cache на * nix и OSX, и C:\Users\<пользователь>\AppData\Local\Composer (или %LOCALAPPDATA%/Composer) в Windows.

COMPOSER_PROCESS_TIMEOUT #

Этот env var управляет временем, которое Composer ждет команд (таких как команды git), чтобы завершить выполнение. Значение по умолчанию: 300 секунд (5 минут).

COMPOSER_CAFILE #

Установив это значение среды, вы можете установить путь к пакету сертификатов, который будет использоваться при проверке подлинности SSL / TLS.

COMPOSER_AUTH #

COMPOSER_AUTH var позволяет вам установить аутентификацию как переменную среды. Содержимое переменной должно быть форматированным в формате JSON, содержащим объекты http-basic, github-oauth, bitbucket-oauth, ... при необходимости и следовать спецификации из config.

COMPOSER_DISCARD_CHANGES #

Этот env var управляет опцией конфигурации discard-changes.

COMPOSER_NO_INTERACTION #

Если установлено значение 1, это сделает env var. Композитор ведет себя так, как будто вы передали флаг --no-interaction каждой команде. Это можно установить в сборках / CI.

COMPOSER_ALLOW_SUPERUSER #

Если установлено значение 1, этот env отключает предупреждение о запуске команд как root/super user. Он также отключает автоматическую очистку сессий sudo, поэтому вы должны действительно установить это, если вы используете Composer как суперпользователя.

COMPOSER_MIRROR_PATH_REPOS #

Если установлено значение 1, этот env изменяет стратегию хранилища путей по умолчанию для mirror вместо symlink. Поскольку эта стратегия по умолчанию установлена, она все равно может быть перезаписана параметрами репозитория.

← БиблиотекиСхема composer.json →