CLI Composer. Интерфейс командной строки и команды Composer
Команды Composer и интерфейс командной строки
  1. CLI Composer / Команды
  2. Bash Completions
  3. Глобальные параметры
  4. Коды завершения процессов
  5. init
  6. install / i
  7. update / u / upgrade
  8. require / r
  9. remove
  10. bump
  11. reinstall
  12. check-platform-reqs
  13. global
  14. search
  15. show / info
  16. outdated
  17. browse / home
  18. suggests
  19. fund
  20. depends / why
  21. prohibits / why-not
  22. validate
  23. status
  24. self-update / selfupdate
  25. config
    1. Применение
    2. Изменение репозиториев
    3. Изменение дополнительных значений
  26. create-project
  27. dump-autoload / dumpautoload
  28. clear-cache / clearcache / cc
  29. licenses
  30. run-script / run
  31. exec
  32. diagnose
  33. archive
  34. audit
  35. help
  36. Авто-дополнение командной строки
  37. Переменные окружения
    1. COMPOSER
    2. COMPOSER_ALLOW_SUPERUSER
    3. COMPOSER_ALLOW_XDEBUG
    4. COMPOSER_AUTH
    5. COMPOSER_BIN_DIR
    6. COMPOSER_CACHE_DIR
    7. COMPOSER_CAFILE
    8. COMPOSER_DISABLE_XDEBUG_WARN
    9. COMPOSER_DISCARD_CHANGES
    10. COMPOSER_HOME
      1. COMPOSER_HOME/config.json
    11. COMPOSER_HTACCESS_PROTECT
    12. COMPOSER_MEMORY_LIMIT
    13. COMPOSER_MIRROR_PATH_REPOS
    14. COMPOSER_NO_INTERACTION
    15. COMPOSER_PROCESS_TIMEOUT
    16. COMPOSER_ROOT_VERSION
    17. COMPOSER_VENDOR_DIR
    18. COMPOSER_RUNTIME_ENV
    19. http_proxy или HTTP_PROXY
    20. COMPOSER_MAX_PARALLEL_HTTP
    21. HTTP_PROXY_REQUEST_FULLURI
    22. HTTPS_PROXY_REQUEST_FULLURI
    23. COMPOSER_SELF_UPDATE_TARGET
    24. no_proxy или NO_PROXY.
    25. COMPOSER_DISABLE_NETWORK
    26. COMPOSER_DEBUG_EVENTS
    27. COMPOSER_NO_AUDIT
    28. COMPOSER_NO_DEV
    29. COMPOSER_PREFER_STABLE
    30. COMPOSER_PREFER_LOWEST
    31. COMPOSER_IGNORE_PLATFORM_REQ или COMPOSER_IGNORE_PLATFORM_REQS


CLI Composer / Команды.

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

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

Поскольку Composer использует symfony/console, вы можете называть команды коротким именем, если оно точно не является двусмысленным.

php composer.phar dump

вызов composer dump-autoload.

Bash Completions.

Для установки дополнений bash можно запустить composer completion bash > completion.bash. Это создаст файл completion.bash в текущем каталоге.

Затем выполните source completion.bash, чтобы включить его в текущем терминале.

Переместите и переименуйте файл completion.bash в /etc/bash_completion.d/composer, чтобы он автоматически загружался в новых терминалах.

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

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

  • --verbose (-v)
    • Увеличить подробность сообщений.
  • --help (-h)
    • Вывести справочную информацию.
  • --quiet (-q)
    • Не выводить никаких сообщений.
  • --no-interaction (-n)
    • Не задавать никаких интерактивных вопросов.
  • --no-plugins (-no)
    • Отключает плагины.
  • --no-scripts (-no)
    • Пропускает выполнение скриптов, определенных в composer.json.
  • --no-cache
    • Отключает использование каталога кэша. Аналогично установке переменной окружения COMPOSER_CACHE_DIR в /dev/null (или NUL в Windows).
  • --working-dir (-d)
    • Если указано, использовать заданный каталог в качестве рабочего.
  • --profile (-d)
    • Отображать информацию о времени и использовании памяти.
  • --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 и использоваться для автозаполнения при запросе списка требований. Каждый репозиторий может быть либо HTTP URL, указывающим на репозиторий composer, либо строкой JSON, аналогично тому, что принимает ключ repositories.
  • --autoload (-a)
    • Добавляет отображение автозагрузки PSR-4 в composer.json. Автоматически сопоставляет пространство имен вашего пакета с указанным каталогом. (Ожидается относительный путь, например, src/) См. также PSR-4 autoload.

install / i

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

php composer.phar install

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

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

Параметры

  • --prefer-install
    • Существует два способа загрузки пакета: source и dist. По умолчанию Composer использует dist.
    • Если вы укажете --prefer-install=source (или --prefer-source), Composer будет устанавливать пакеты из исходников, если они есть. Это полезно, если требуется внести исправление в проект и получить локальный git-клон зависимости напрямую.
    • Чтобы получить прежнее поведение, при котором Composer автоматически использует  source для dev-версий пакетов, используйте --prefer-install=auto. См. также config.preferred-install. Передача этого флага отменяет значение из конфигурации.
  • --dry-run
    • Если вы хотите выполнить пробную установку без фактической установки пакета, вы можете использовать --dry-run. Это смоделирует установку и покажет её ход и результат.
  • --download-only
    • Только скачивать пакеты, но не устанавливать их.
  • --dev
    • Установить пакеты, перечисленные в require-dev (это поведение по умолчанию).
  • --no-dev
    • Пропустить установку пакетов, перечисленных в require-dev. Генерация автозагрузчика пропускает правила autoload-dev. Также смотрите COMPOSER_NO_DEV.
  • --no-autoloader
    • Пропускает генерацию автозагрузчика.
  • --no-progress
    • Убирает отображение прогресса, которое может испортить работу некоторых терминалов или скриптов, не обрабатывающих символы backspace.
  • --audit
    • Запустить аудит после завершения установки.
  • --audit-format
    • Формат вывода результатов аудита. Должен быть "table", "plain", "json" или "summary" (по умолчанию).
  • --optimize-autoloader (-o)
    • Преобразовать автозагрузку PSR-0/4 в classmap для получения более быстрой автозагрузки. Это особенно рекомендуется для продакшена, но может занять некоторое время, поэтому в настоящее время не выполняется по умолчанию.
  • --classmap-authoritative (-a)
    • Автозагрузка классов только из classmap. Неявно включает опцию --optimize-autoloader.
  • --apcu-autoloader
    • Использовать APCu для кэширования найденных и/или не найденных классов.
  • --apcu-autoloader-prefix
    • Использовать пользовательский префикс для кэша автозагрузки APCu. Неявно включает --apcu-autoloader.
  • --ignore-platform-reqs
    • игнорировать все требования платформы (php, hhvm, lib-* и ext-*) и принудительно устанавливать, даже если локальная машина их не выполняет. См. также параметр конфигурации platform.
  • --ignore-platform-req
    • игнорировать определенное требование платформы (php, hhvm, lib-* и ext-*) и принудительно установить, даже если локальная машина не выполняет его.
    • Несколько требований могут быть проигнорированы с помощью подстановочного знака.
      • Добавление знака + заставляет игнорировать только верхнюю границу требований. Например, если пакет требует php: ^7, то опция --ignore-platform-req=php+ позволит установить пакет на PHP 8, но установка на PHP 5.6 все равно будет неудачной.

update / u / upgrade

Чтобы получить последние версии зависимостей и обновить файл composer.lock, необходимо использовать команду update. Эта команда также называется upgrade, поскольку она выполняет те же действия, что и upgrade, если вы имеете в виду apt-get или аналогичные менеджеры пакетов.

php composer.phar update

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

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

php composer.phar update vendor/package vendor/package2

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

php composer.phar update "vendor/*"

Если требуется понизить версию пакета до определенной версии без изменения composer.json, следует использовать --with и указать пользовательское ограничение версии:

php composer.phar update --with vendor/package:2.0.1

Обратите внимание, что при вышеуказанном варианте будут обновлены все пакеты. Если требуется обновить только пакет(ы), для которых заданы пользовательские ограничения с помощью --with, то можно пропустить --with и вместо этого использовать ограничения с синтаксисом частичного обновления:

php composer.phar update vendor/package:2.0.1 vendor/package2:3.0.*

Примечание: Для пакетов, также требуемых в вашем composer.json, пользовательское ограничение должно быть подмножеством существующего ограничения. Ограничения composer.json по-прежнему применяются, и composer.json не изменяется этими временными ограничениями обновления.

Параметры

  • --prefer-install
    • Существует два способа загрузки пакета: source и dist. По умолчанию Composer использует dist.
    • Если вы передадите --prefer-install=source (или --prefer-source), Composer будет устанавливать пакеты source, если они есть.
    • Это полезно, если необходимо внести исправление в проект и получить локальный git-клон зависимости напрямую.
    • Чтобы получить прежнее поведение, при котором Composer автоматически использует исходники для dev-версий пакетов, используйте --prefer-install=auto. См. также config.preferred-install. Передача этого флага отменяет значение конфигурации.
  • --dry-run
    • Имитировать команду установки, ничего не делая на самом деле.
  • --dev
    • Установить пакеты, перечисленные в require-dev (это поведение по умолчанию).
  • --no-dev
    • Пропустить установку пакетов, перечисленных в require-dev. Генерация автозагрузки пропускает правила autoload-dev. Также смотрите COMPOSER_NO_DEV.
  • --no-install
    • Не запускать шаг установки после обновления файла composer.lock.
  • --no-audit
    • Не запускать шаги аудита после обновления файла composer.lock. Также смотрите COMPOSER_NO_AUDIT.
  • --audit-format
    • Формат вывода результатов аудита. Должен быть "table", "plain", "json" или "summary" (по умолчанию).
  • --lock
    • Обновляет только хэш файла блокировки, чтобы подавить предупреждение о том, что файл блокировки устарел.
  • --with
    • Временное ограничение версии для добавления, например, foo/bar:1.0.0 или foo/bar=1.0.0.
  • --no-autoloader
    • Пропускает генерацию автозагрузчика.
  • --no-progress
    • Убирает отображение прогресса, которое может испортить работу некоторых терминалов или скриптов, не обрабатывающих символы backspace.
  • --with-dependencies (-w)
    • Обновлять также зависимости пакетов в списке аргументов, кроме тех, которые являются корневыми требованиями.
  • --with-all-dependencies (-W)
    • Обновить также зависимости пакетов в списке аргументов, включая те, которые являются корневыми требованиями.
  • --optimize-autoloader (-o)
    • Преобразовать автозагрузку PSR-0/4 в classmap для получения более быстрой автозагрузки. Это рекомендуется особенно для продакшена, но может занять некоторое время на выполнение, поэтому в настоящее время не выполняется по умолчанию.
  • --classmap-authoritative (-a)
    • Автозагрузка классов только из карты классов. Неявно включает опцию --optimize-autoloader.
  • --apcu-autoloader
    • Использовать APCu для кэширования найденных и/или ненайденных классов.
  • --apcu-autoloader-prefix
    • Использовать пользовательский префикс для кэша автозагрузки APCu. Неявно включает --apcu-autoloader.
  • --ignore-platform-reqs
    • игнорировать все требования платформы (php, hhvm, lib-* и ext-*) и принудительно устанавливать, даже если локальная машина их не выполняет. См. также опцию конфигурации platform.
  • --ignore-platform-req
    • игнорировать определенное требование платформы (php, hhvm, lib-* и ext-*) и принудительно установить, даже если локальная машина не выполняет его.
    • Несколько требований могут быть проигнорированы с помощью подстановочного знака.
    • Добавление знака + заставляет игнорировать только верхнюю границу требований. Например, если пакет требует php: ^7, то опция --ignore-platform-req=php+ позволит установить пакет на PHP 8, но установка на PHP 5.6 все равно будет неудачной.
  • --prefer-stable
    • Предпочитать стабильные версии зависимостей. Также может быть задано с помощью переменной окружения COMPOSER_PREFER_STABLE=1.
  • --prefer-lowest
    • Предпочитать самые низкие версии зависимостей. Полезно для тестирования требованиям с минимальными версиями, обычно используется вместе с --prefer-stable. Также может быть задана с помощью переменной окружения COMPOSER_PREFER_LOWEST=1.
  • --interactive
    • Интерактивный интерфейс с автозаполнением для выбора пакетов для обновления.
  • --root-reqs
    • Ограничивает обновление только вашими зависимостями первой степени.

Указание в качестве аргумента одного из слов mirrors, lock или nothing имеет тот же эффект, что и указание параметра --lock, например, composer update mirrors аналогичен composer update --lock.

require / r

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

php composer.phar require

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

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

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

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

Параметры

  • --dev
    • Добавить пакеты в require-dev.
  • --dry-run
    • Имитировать команду, ничего не делая на самом деле.
  • --prefer-install
    • Существует два способа загрузки пакета: source и dist. По умолчанию Composer использует dist.
    • Если передать --prefer-install=source (или --prefer-source), Composer будет устанавливать из source, если таковой имеется. Это полезно, если необходимо внести исправление в проект и получить локальный git-клон зависимости напрямую.
    • Чтобы получить прежнее поведение, при котором Composer автоматически использует source для dev-версий пакетов, используйте --prefer-install=auto. См. также config.preferred-install. Передача этого флага отменяет значение конфигурации.
  • --no-progress
    • Убирает отображение прогресса, которое может мешать работе в некоторых терминалах или скриптах, не обрабатывающих символы backspace.
  • --no-update
    • отключает автоматическое обновление зависимостей (подразумевает --no-install).
  • --no-install
    • Не запускает установку после обновления файла composer.lock.
  • --no-audit
    • Не запускает шаги аудита после обновления файла composer.lock. Также смотрите COMPOSER_NO_AUDIT.
  • --audit-format
    • Формат вывода результатов аудита. Должен быть "table", "plain", "json" или "summary" (по умолчанию).
  • --update-no-dev
    • Запустить обновление зависимостей с опцией --no-dev. Также смотрите COMPOSER_NO_DEV.
  • --update-with-dependencies (-w)
    • Также обновить зависимости новых требуемых пакетов, кроме тех, которые являются корневыми ресурсами.
  • --update-with-all-dependencies (-W)
    • Также обновить зависимости новых требуемых пакетов, включая те, которые являются корневыми ресурсами.
  • --ignore-platform-reqs
    • игнорировать все требования платформы (php, hhvm, lib-* и ext-*) и принудительно выполнить установку, даже если локальная машина их не выполняет. См. также опцию конфигурации platform.
  • --ignore-platform-req
    • игнорировать определенное требование платформы (php, hhvm, lib-* и ext-*) и принудительно установить, даже если локальная машина не выполняет его.
    • Рад требований могут быть проигнорированы с помощью специального символа.
  • --prefer-stable
    • Предпочитать стабильные версии зависимостей. Также может быть задано через переменную окружения COMPOSER_PREFER_STABLE=1.
  • --prefer-lowest
    • Предпочитать самые низкие версии зависимостей.
    • Полезно для тестирования минимальных версий требованиям. Обычно используется вместе с --prefer-stable.
    • Также может быть задана с помощью переменной окружения COMPOSER_PREFER_LOWEST=1.
  • --sort-packages
    • Сохранять пакеты отсортированными в composer.json.
  • --optimize-autoloader (-o)
    • Преобразовать автозагрузку PSR-0/4 в classmap, чтобы получить более быструю автозагрузку.
    • Это рекомендуется особенно для production, но может занять некоторое время на выполнение, поэтому в настоящее время не выполняется по умолчанию.
  • --classmap-authoritative (-a)
    • Автозагрузка классов только из classmap. Неявно включает опцию --optimize-autoloader.
  • --apcu-autoloader
    • Использовать APCu для кэширования найденных и/иди не найденных классов.
  • --apcu-autoloader-prefix
    • Использовать пользовательский префикс для кэша автозагрузки APCu. Неявно включает --apcu-autoloader.

remove

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

php composer.phar remove vendor/package vendor/package2

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

Параметры

  • --unused
    • Удалить неиспользуемые пакеты, которые больше не являются прямой или косвенной зависимостью.
  • --dev
    • Удалить пакеты из require-dev.
  • --dry-run
    • Имитировать команду, ничего не делая на самом деле.
  • --no-progress
    • Отключает отображение прогресса, который может помешать работе некоторых терминалов или скриптов, не обрабатывающих символы обратного пробела.
  • --no-update
    • отключает автоматическое обновление зависимостей (подразумевает --no-install).
  • --no-install
    • Не запускает шаг установки после обновления файла composer.lock.
  • --no-audit
    • Не запускает шаги аудита после завершения установки. Также смотрите COMPOSER_NO_AUDIT.
  • --audit-format
    • Формат вывода результатов аудита. Должен быть "table", "plain", "json" или "summary" (по умолчанию).
  • --update-no-dev
    • Запустить обновление зависимостей с опцией --no-dev. Также смотрите COMPOSER_NO_DEV.
  • --update-with-dependencies (-w)
    • Также обновить зависимости удаленных пакетов. (Утратил актуальность, теперь используется по умолчанию)
  • --update-with-all-dependencies (-W)
    • Позволяет обновлять все унаследованные зависимости, включая те, которые являются корневыми ресурсами.
  • --ignore-platform-reqs
    • игнорирует все требования платформы (php, hhvm, lib-* и ext-*) и принудительно выполняет установку, даже если локальная машина их не выполняет. См. также опцию конфигурации platform.
  • --ignore-platform-req
    • игнорировать определенное требование платформы (php, hhvm, lib-* и ext-*) и принудительно установить, даже если локальная машина не выполняет его. Несколько требований могут быть проигнорированы с помощью подстановки спецсимвола.
  • --optimize-autoloader (-o)
    • Преобразовать автозагрузку PSR-0/4 в classmap для получения более быстрой автозагрузки. Это рекомендуется особенно для production, но может занять некоторое время для выполнения, поэтому в настоящее время не выполняется по умолчанию.
  • --classmap-authoritative (-a)
    • Автозагрузка классов только из classmap. Неявно включает опцию --optimize-autoloader.
  • --apcu-autoloader
    • Использовать APCu для кэширования найденных и/или ненайденных классов.
  • --apcu-autoloader-prefix
    • Использовать пользовательский префикс для кэша автозагрузки APCu. Неявно включает --apcu-autoloader.

bump

Команда bump увеличивает нижний порог требований вашего composer.json до текущих установленных версий. Это помогает гарантировать, что ваши зависимости не будут случайно понижены из-за какого-либо другого конфликта, и может немного повысить производительность обработки зависимостей, так как ограничивает количество версий пакетов, которые Composer должен просматривать.

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

Параметры

  • --dev-only
    • Выполнять только требования в "require-dev".
  • --no-dev-only
    • Выполнять требования только в "require".
  • --dry-run
    • Выводит пакеты для bump, но ничего не выполняет.

reinstall

Команда reinstall ищет установленные пакеты по имени, удаляет их и устанавливает заново. Это позволяет выполнить чистую установку пакета, если были повреждены его файлы, или если вы хотите изменить тип установки с помощью команды --prefer-install.

php composer.phar reinstall acme/foo acme/bar

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

php composer.phar reinstall "acme/*"

Параметры

  • --prefer-install
    • Существует два способа загрузки пакета: source и dist. По умолчанию Composer использует dist.
    • Если вы передадите --prefer-install=source (или --prefer-source), Composer будет устанавливать из исходников, если они есть. Это полезно, если требуется внести исправление в проект и получить локальный git-клон зависимости напрямую.
    • Чтобы получить прежнее поведение, при котором Composer автоматически использует source для dev-версий пакетов, используйте --prefer-install=auto. См. также config.preferred-install. Передача этого флага переопределит настройки конфигурации.
  • --no-autoloader
    • Пропускает генерацию автозагрузчика.
  • --no-progress
    • Убирает отображение прогресса, которое может мешать работе некоторых терминалов или скриптов, не обрабатывающих символы backspace.
  • --optimize-autoloader (-o)
    • Преобразовать автозагрузку PSR-0/4 в classmap для получения более быстрой автозагрузки. Это особенно рекомендуется для production, но может занять некоторое время для выполнения, поэтому в настоящее время не выполняется по умолчанию.
  • --classmap-authoritative (-a)
    • Автозагрузка классов только из classmap. Неявно включает опцию --optimize-autoloader.
  • --apcu-autoloader
    • Использовать APCu для кэширования найденных и/или ненайденных классов.
  • --apcu-autoloader-prefix
    • Использовать пользовательский префикс для кэша автозагрузки APCu. Неявно включает --apcu-autoloader.
  • --ignore-platform-reqs
    • Игнорировать все требования платформы. Это имеет эффект только в контексте генерации автозагрузки для команды reinstall.
  • --ignore-platform-req
    • Игнорировать конкретное требование платформы. Это имеет эффект только в контексте генерации автозагрузки для команды reinstall.
    • Несколько требований могут быть проигнорированы с помощью специального символа.

check-platform-reqs

Команда check-platform-reqs проверяет соответствие версий PHP и расширений требованиям платформы установленных пакетов. Это может быть использовано, например, для проверки того, что рабочий сервер имеет все расширения, необходимые для запуска проекта после его установки.

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

Параметры

  • --lock
    • Проверяет требования только из файла блокировки, а не из установленных пакетов.
  • --no-dev
    • Отключает проверку требований пакетов require-dev.
  • --format (-f)
    • Формат вывода: text (по умолчанию) или json.

global

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

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

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

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

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

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

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

php composer.phar global update

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

php composer.phar search monolog

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

Параметры

  • --only-name (-N)
    • Искать только в именах пакетов.
  • --only-vendor (-O)
    • Поиск только по именам поставщиков / организаций, возвращает только "vendor" в качестве результата.
  • --type (-t)
    • Поиск определенного типа пакета.
  • --format (-f)
    • Позволяет выбрать формат вывода: text (по умолчанию) или json. Обратите внимание, что в json гарантированно присутствуют только ключи name и description. Остальные (url, repository, downloads и favers) доступны для результатов поиска Packagist.org, а другие репозитории могут возвращать больше или меньше данных.

show / info

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

php composer.phar show

Для фильтрации списка можно передать маску пакета, используя спецсимволы.

php composer.phar show "monolog/*"
monolog/monolog 2.4.0 Sends your logs to files, sockets, inboxes, databases and various web services

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

php composer.phar show monolog/monolog
name     : monolog/monolog
descrip. : Sends your logs to files, sockets, inboxes, databases and various web services
keywords : log, logging, psr-3
versions : * 1.27.1
type     : library
license  : MIT License (MIT) (OSI approved) https://spdx.org/licenses/MIT.html#licenseText
homepage : http://github.com/Seldaek/monolog
source   : [git] https://github.com/Seldaek/monolog.git 904713c5929655dc9b97288b69cfeedad610c9a1
dist     : [zip] https://api.github.com/repos/Seldaek/monolog/zipball/904713c5929655dc9b97288b69cfeedad610c9a1 904713c5929655dc9b97288b69cfeedad610c9a1
names    : monolog/monolog, psr/log-implementation

support
issues : https://github.com/Seldaek/monolog/issues
source : https://github.com/Seldaek/monolog/tree/1.27.1

autoload
psr-4
Monolog\ => src/Monolog

requires
php >=5.3.0
psr/log ~1.0

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

php composer.phar show monolog/monolog 1.0.2

Параметры

  • --all
    • Вывести список всех пакетов, доступных во всех ваших репозиториях.
  • --installed (-i)
    • Вывести список установленных пакетов (этот параметр включен по умолчанию и является устаревшим).
  • --locked
    • Вывести список заблокированных пакетов из composer.lock.
  • --platform (-p)
    • Вывести список только пакетов платформы (php & extensions).
  • --available (-a)
    • Вывести список только доступных пакетов.
  • --self (-s)
    • Вывести список информации о корневом пакете.
  • --name-only (-N)
    • Вывести только имена пакетов.
  • --path (-P)
    • Вывести список путей к пакетам.
  • --tree (-t)
    • Вывести список зависимостей в виде дерева. Если передать имя пакета, то будет показано дерево зависимостей для этого пакета.
  • --latest (-l)
    • Вывести список всех установленных пакетов, включая их последнюю версию.
  • --outdated (-o)
    • Аналогично --latest, но перечисляет только те пакеты, для которых доступна более новая версия.
  • --ignore
    • Игнорировать указанный пакет(ы). Используйте его с опцией --outdated, если вы не хотите получать информацию о новых версиях некоторых пакетов.
  • --no-dev
    • Исключает dev-зависимости из списка пакетов.
  • --major-only (-M)
    • Используется вместе с --latest или --outdated.
    • Показывает только те пакеты, которые имеют основные обновления, совместимые с SemVer.
  • --minor-only (-m)
    • Используется с --latest или --outdated.
    • Показывает только пакеты с незначительными SemVer-совместимыми обновлениями.
  • --patch-only (-m)
    • Используется с --latest или --outdated.
    • Показывает только те пакеты, которые имеют обновления SemVer-совместимости на уровне patch.
  • --direct (-D):
    • Ограничивает список пакетов вашими прямыми зависимостями.
  • --strict
    • Возвращает ненулевой код завершения, если есть устаревшие пакеты.
  • --format (-f)
    • Позволяет выбрать формат вывода: text (по умолчанию) или json.
  • --ignore-platform-reqs
    • игнорировать все требования платформы (php, hhvm, lib-* и ext-*) и принудительно выполнить установку, даже если локальная машина им не соответствует.
    • Используйте с опцией --outdated.
  • --ignore-platform-req
    • Игнорировать определенное требование платформы (php, hhvm, lib-* и ext-*) и принудительно установить, даже если локальная машина не соответствует ему. Несколько требований могут быть проигнорированы с помощью подстановочного знака. Используйте с опцией --outdated.

outdated

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

Цветовое кодирование выглядит следующим образом:

  • зеленый (=)
    • Зависимость находится в последней версии и является актуальной.
  • желтый (~)
    • Зависимость имеет новую версию, которая включает в себя нарушения обратной совместимости согласно semver, поэтому обновите ее, когда сможете, но это может потребовать дополнительных действий.
  • красный (!)
    • Зависимость имеет новую версию, совместимую с semver, и вам следует обновить ее.

Параметры

  • --all (-a)
    • Показать все пакеты, а не только устаревшие (псевдоним для composer show --latest).
  • --direct (-D)
    • Ограничивает список пакетов вашими прямыми зависимостями.
  • --strict
    • Возвращает ненулевой код окончания, если какой-либо пакет является устаревшим.
  • --ignore
    • Игнорировать указанный пакет(ы). Используйте его, если вы не хотите получать информацию о новых версиях некоторых пакетов.
  • --major-only (-M)
    • Показывает только те пакеты, которые имеют основные SemVer-совместимые обновления.
  • --minor-only (-m)
    • Показывать только те пакеты, которые имеют незначительные SemVer-совместимые обновления.
  • --patch-only (-p)
    • Показывает только те пакеты, которые имеют SemVer-совместимые обновления на уровне patch.
  • --format (-f)
    • Позволяет выбрать формат вывода: text (по умолчанию) или json.
  • --no-dev
    • Не показывать устаревшие dev-зависимости.
  • --locked
    • Показывает обновления для пакетов из файла блокировки, независимо от того, что в данный момент находится в каталогах поставщиков.
  • --ignore-platform-reqs
    • Игнорировать все требования платформы (php, hhvm, lib-* и ext-*) и принудительно устанавливать, даже если локальная машина им не соответствует.
  • --ignore-platform-req
    • Игнорировать конкретное требование платформы (php, hhvm, lib-* и ext-*) и принудительно установить, даже если локальная машина ему не соответствует. Ряд требований могут быть проигнорированы с помощью специальных символов.

browse / home

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

Параметры

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

suggests

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

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

Если нужен только список имен предложенных пакетов, используйте --list.

Параметры

  • --by-package
    • Группирует вывод по предлагаемому пакету (по умолчанию).
  • --by-suggestion
    • Группирует вывод по предложенному пакету.
  • --all
    • Показать предложения от всех зависимостей, включая промежуточные (по умолчанию показываются предложения только от прямых зависимостей).
  • --list
    • Показать только список предложенных имен пакетов.
  • --no-dev
    • Исключить предложения из пакетов require-dev.

fund

О том, как помочь финансировать поддержку зависимостей. Здесь перечислены все ссылки на финансирование из установленных зависимостей. Используйте --format=json для получения машиночитаемого вывода.

Параметры

  • --format (-f)
    • Позволяет выбрать формат вывода: text (по умолчанию) или json.

depends / why

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

php composer.phar depends doctrine/lexer
doctrine/annotations  1.13.3 requires doctrine/lexer (1.*)
doctrine/common       2.13.3 requires doctrine/lexer (^1.0)

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

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

php composer.phar depends psr/log -t
psr/log 1.1.4 Common interface for logging libraries
├──composer/composer 2.4.x-dev (requires psr/log ^1.0 || ^2.0 || ^3.0)
├──composer/composer dev-main (requires psr/log ^1.0 || ^2.0 || ^3.0)
├──composer/xdebug-handler 3.0.3 (requires psr/log ^1 || ^2 || ^3)
│  ├──composer/composer 2.4.x-dev (requires composer/xdebug-handler ^2.0.2 || ^3.0.3)
│  └──composer/composer dev-main (requires composer/xdebug-handler ^2.0.2 || ^3.0.3)
└──symfony/console v5.4.11 (conflicts psr/log >=3) (circular dependency aborted here)

Параметры

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

prohibits / why-not

Команда 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 / selfupdate

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

php composer.phar self-update

Если требуется обновление Composer до определенного выпуска, укажите его:

php composer.phar self-update 2.4.0-RC1

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

sudo -H composer self-update

Если Composer не был установлен как PHAR, эта команда недоступна. (Это иногда случается, когда Composer был установлен менеджером пакетов операционной системы).

Параметры

  • --rollback (-r)
    • Откат к последней установленной версии.
  • --clean-backups
    • Удалить старые резервные копии во время обновления. Это сделает текущую версию Composer единственной резервной копией, доступной после обновления.
  • --no-progress
    • Не выводить информацию о ходе загрузки.
  • --update-keys
    • Запрашивать пользователя об обновлении ключей.
  • --stable
    • Принудительное обновление до стабильного канала.
  • --preview
    • Принудительное обновление на канале предварительного просмотра.
  • --snapshot
    • Принудительное обновление на канал snapshot.
  • --1
    • Принудительно обновить стабильный канал, но использовать только версии 1.x.
  • --2
    • Принудительно обновить стабильный канал, но использовать только версии 2.x.
  • --set-channel-only
    • Только сохранить канал по умолчанию и затем выйти

config

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

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

php composer.phar config --list

Применение.

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

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

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

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

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

Параметры

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

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

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

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, команда config также поддерживает внесение изменений в раздел extra, используя его следующим образом:

php composer.phar config extra.foo.bar value

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

Если вам нужно добавить/изменить сложное значение, вы можете использовать флаги --json и --merge для редактирования дополнительных полей в формате JSON:

php composer.phar config --json extra.foo.bar '{"baz": true, "qux": []}'

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-install
    • Существует два способа загрузки пакета: source и dist.
    • По умолчанию Composer использует dist.
    • Если вы передадите --prefer-install=source (или --prefer-source), Composer будет устанавливать из исходников, если они есть. Это полезно, если вы хотите внести исправление в проект и получить локальный git-клон зависимости напрямую.
    • Чтобы получить прежнее поведение, при котором Composer автоматически использует source для dev-версий пакетов, используйте --prefer-install=auto.
    • См. также config.preferred-install. Передача этого флага переопределит значение конфигурации.
  • --repository
    • Указывает пользовательский репозиторий для поиска пакета, который будет использоваться вместо packagist. Это может быть либо HTTP URL, указывающий на репозиторий composer, либо путь к локальному файлу packages.json, либо строка JSON, аналогичная тому, что принимает ключ repositories.
    • Для конфигурации нескольких репозиториев можно использовать этот параметр несколько раз.
  • --add-repository
    • Добавляет пользовательский репозиторий в composer.json.
    • Если присутствует файл блокировки, он будет удален, и вместо установки будет запущено обновление.
  • --dev
    • Установить пакеты, перечисленные в require-dev.
  • --no-dev
    • Отключает установку пакетов require-dev.
  • --no-scripts
    • Отключает выполнение скриптов, определенных в корневом пакете.
  • --no-progress
    • Удаляет отображение прогресса, который может мешать работе некоторых терминалов или скриптов, не обрабатывающих символы backspace.
  • --no-secure-http
    • Временно отключить опцию конфигурации secure-http при установке корневого пакета.
    • Используйте на свой страх и риск. Использование этого флага - плохая идея.
  • --keep-vcs
    • Пропустить удаление метаданных VCS для созданного проекта.
    • Это полезно, если вы выполняете команду в неинтерактивном режиме.
  • --remove-vcs
    • Принудительно удалить метаданные VCS без запроса.
  • --no-install
    • Отключает установку поставщиков.
  • --no-audit
    • Не запускать шаги аудита после завершения установки. Также смотрите COMPOSER_NO_AUDIT.
  • --audit-format
    • Формат вывода результатов аудита. Должен быть "table", "plain", "json" или "summary" (по умолчанию).
  • --ignore-platform-reqs
    • игнорировать все требования платформы (php, hhvm, lib-* и ext-*) и принудительно выполнить установку, даже если локальная машина им не соответствует. См. также опцию конфигурации platform.
  • --ignore-platform-req
    • игнорировать определенное требование платформы (php, hhvm, lib-* и ext-*) и принудительно установить, даже если локальная машина не выполняет его. Несколько требований могут быть проигнорированы с помощью специальных символов.
  • --ask
    • Попросить пользователя указать целевой каталог для нового проекта.

dump-autoload / dumpautoload

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

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

Параметры

  • --optimize (-o)
    • Преобразовать автозагрузку PSR-0/4 в classmap для получения более быстрой автозагрузки. Это рекомендуется особенно для production, но может занять немного времени на выполнение, поэтому в настоящее время не выполняется по умолчанию.
  • --classmap-authoritative (-a)
    • Автозагрузка классов только из classmap. Неявно включает опцию --optimize.
  • --apcu
    • Использовать APCu для кэширования найденных и/или ненайденных классов.
  • --apcu-prefix
    • Использовать пользовательский префикс для кэша автозагрузки APCu. Неявно включает --apcu.
  • --no-dev
    • Отключает правила autoload-dev. По умолчанию Composer будет определять это автоматически в соответствии с состоянием последней установки или обновления --no-dev.
  • --dev
    • Включает правила autoload-dev. По умолчанию Composer будет автоматически определять это в соответствии с последней установкой или обновлением --no-dev.
  • --ignore-platform-reqs
    • игнорировать все требования php, hhvm, lib-* и ext-* и пропустить platform check для них. См. также параметр конфигурации platform.
  • --ignore-platform-req
    • игнорировать конкретное требование платформы (php, hhvm, lib-* и ext-*) и пропустить platform check для него. Несколько требований могут быть проигнорированы с помощью спецсимвола.
  • --strict-psr
    • Возвращать код состояния неудачи (1), если присутствуют ошибки сопоставления PSR-4 или PSR-0. Для работы требуется --optimize.

clear-cache / clearcache / cc

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

Параметры

  • --gc
    • Выполнять только сборку мусора, а не полную очистку кэша

licenses

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

Параметры

  • --format
    • Формат вывода: text, json или summary (по умолчанию: text)
  • --no-dev
    • Убрать dev-зависимости из вывода

run-script / run

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

Параметры

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

exec

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

Параметры

  • --list (-l)
    • Вывести список доступных двоичных файлов Composer.

diagnose

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

php composer.phar diagnose

archive

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

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

Параметры

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

audit

Эта команда используется для проверки установленных пакетов на наличие возможных проблем безопасности. Она проверяет наличие и перечисляет рекомендации по уязвимостям безопасности в соответствии с Packagist.org api.

Команда audit возвращает количество найденных уязвимостей. 0 в случае успеха и до 255 в противном случае.

Параметры

  • --no-dev
    • Отключает аудит пакетов require-dev.
  • --format (-f)
    • Формат вывода результатов аудита. Должен быть "table" (по умолчанию), "plain", "json" или "summary".
  • --locked
    • Аудит пакетов из файла блокировки, независимо от того, что в данный момент находится в каталоге vendor.

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_ALLOW_SUPERUSER

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

COMPOSER_ALLOW_XDEBUG

Если установлено значение 1, этот параметр позволяет запускать Composer при включенном расширении Xdebug, не перезапуская PHP без него.

COMPOSER_AUTH

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

COMPOSER_BIN_DIR

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

COMPOSER_CACHE_DIR

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

По умолчанию он указывает на C:\Users\<user>\AppData\Local\Composer (или %LOCALAPPDATA%/Composer) в Windows. В *nix системах, которые следуют спецификации XDG Base Directory Specifications, он указывает на $XDG_CACHE_HOME/composer. В других *nix-системах и macOS он указывает на $COMPOSER_HOME/cache.

COMPOSER_CAFILE

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

COMPOSER_DISABLE_XDEBUG_WARN

Если установлено значение 1, этот параметр подавляет предупреждение, когда Composer работает с включенным расширением Xdebug.

COMPOSER_DISCARD_CHANGES

Эта переменная среды управляет параметром конфигурации discard-changes.

COMPOSER_HOME

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

Используйте composer config --global home, чтобы узнать расположение домашнего каталога Composer.

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

COMPOSER_HOME/config.json

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

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

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

COMPOSER_HTACCESS_PROTECT

  • По умолчанию равно 1.
  • Если установлено значение 0, Composer не будет создавать файлы .htaccess в каталогах Composer home, cache и data.

COMPOSER_MEMORY_LIMIT

Если установлено, это значение используется в качестве memory_limit php.

COMPOSER_MIRROR_PATH_REPOS

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

COMPOSER_NO_INTERACTION

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

COMPOSER_PROCESS_TIMEOUT

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

COMPOSER_ROOT_VERSION

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

COMPOSER_VENDOR_DIR

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

COMPOSER_RUNTIME_ENV

Это позволяет указать, в какой среде запущен Composer, что может помочь Composer обойти некоторые проблемы, связанные с конкретной средой. В настоящее время поддерживается только значение virtualbox, что позволяет использовать несколько коротких вызовов sleep(), чтобы подождать, пока файловая система запишет файлы должным образом, прежде чем мы попытаемся их прочитать. Вы можете установить переменную окружения, если используете Vagrant или VirtualBox и сталкиваетесь с проблемами, когда файлы не находятся во время установки, хотя они должны присутствовать.

http_proxy и/или HTTP_PROXY

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

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

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

COMPOSER_MAX_PARALLEL_HTTP

Задается целым числом для настройки количества параллельно загружаемых файлов. По умолчанию это значение равно 12 и должно быть от 1 до 50. Если ваш прокси имеет проблемы с параллельностью, возможно, вы захотите уменьшить это значение. Увеличение этого параметра обычно не приводит к увеличению производительности.

HTTP_PROXY_REQUEST_FULLURI

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

HTTPS_PROXY_REQUEST_FULLURI

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

COMPOSER_SELF_UPDATE_TARGET

Если установлено, команда self-update записывает новый phar-файл Composer в этот путь, а не перезаписывает себя. Полезно для обновления Composer на файловой системе, доступной только для чтения.

no_proxy or NO_PROXY

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

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

COMPOSER_DISABLE_NETWORK

Если установлено значение 1, доступ к сети отключен (наилучшие возможности). Это можно использовать для отладки или для запуска Composer в самолете или на звездолете с плохим соединением.

Если установлено значение prime, то репозитории GitHub VCS будут загружать кэш, и тогда его можно будет использовать полностью автономно при значении 1.

COMPOSER_DEBUG_EVENTS

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

COMPOSER_NO_AUDIT

Если установлено значение 1, это эквивалентно передаче параметра --no-audit команде require, update, remove или create-project.

COMPOSER_NO_DEV

Если установлено значение 1, это эквивалентно передаче параметра --no-dev для install или update. Вы можете отменить это для отдельной команды, установив COMPOSER_NO_DEV=0.

COMPOSER_PREFER_STABLE

Если установлено значение 1, это эквивалентно передаче параметра --prefer-stable в update или require.

COMPOSER_PREFER_LOWEST

Если установлено значение 1, это эквивалентно передаче параметра --prefer-lowest в update или require.

COMPOSER_IGNORE_PLATFORM_REQ or COMPOSER_IGNORE_PLATFORM_REQS

Если COMPOSER_IGNORE_PLATFORM_REQS установлен в 1, это эквивалентно передаче параметра --ignore-platform-reqs. В противном случае, указав в COMPOSER_IGNORE_PLATFORM_REQ список, разделенный запятыми, вы будете игнорировать эти специфические требования.

Например, если на рабочей станции разработчика никогда не будут выполняться запросы к базе данных, это можно использовать для игнорирования требования доступности расширений базы данных. Если вы установите COMPOSER_IGNORE_PLATFORM_REQ=ext-oci8, то composer позволит устанавливать пакеты, даже если расширение oci8 PHP не включено.

 

Перевод с английского официальной документации Composer:
https://getcomposer.org/doc/03-cli.md

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню