- CLI Composer / Команды
- Bash Completions
- Глобальные параметры
- Коды завершения процессов
init
install
/i
update
/u
/upgrade
require
/r
remove
bump
reinstall
check-platform-reqs
global
search
show
/info
outdated
browse
/home
suggests
fund
depends
/why
prohibits
/why-not
validate
status
self-update
/selfupdate
config
create-project
dump-autoload
/dumpautoload
clear-cache
/clearcache
/cc
licenses
run-script
/run
exec
diagnose
archive
audit
help
- Авто-дополнение командной строки
- Переменные окружения
COMPOSER
COMPOSER_ALLOW_SUPERUSER
COMPOSER_ALLOW_XDEBUG
COMPOSER_AUTH
COMPOSER_BIN_DIR
COMPOSER_CACHE_DIR
COMPOSER_CAFILE
COMPOSER_DISABLE_XDEBUG_WARN
COMPOSER_DISCARD_CHANGES
COMPOSER_HOME
COMPOSER_HTACCESS_PROTECT
COMPOSER_MEMORY_LIMIT
COMPOSER_MIRROR_PATH_REPOS
COMPOSER_NO_INTERACTION
COMPOSER_PROCESS_TIMEOUT
COMPOSER_ROOT_VERSION
COMPOSER_VENDOR_DIR
COMPOSER_RUNTIME_ENV
http_proxy
илиHTTP_PROXY
COMPOSER_MAX_PARALLEL_HTTP
HTTP_PROXY_REQUEST_FULLURI
HTTPS_PROXY_REQUEST_FULLURI
COMPOSER_SELF_UPDATE_TARGET
no_proxy
илиNO_PROXY
.COMPOSER_DISABLE_NETWORK
COMPOSER_DEBUG_EVENTS
COMPOSER_NO_AUDIT
COMPOSER_NO_DEV
COMPOSER_PREFER_STABLE
COMPOSER_PREFER_LOWEST
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.
- Добавляет отображение автозагрузки PSR-4 в
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
.
- Автозагрузка классов только из classmap. Неявно включает опцию
--apcu-autoloader
- Использовать APCu для кэширования найденных и/или не найденных классов.
--apcu-autoloader-prefix
- Использовать пользовательский префикс для кэша автозагрузки APCu. Неявно включает
--apcu-autoloader
.
- Использовать пользовательский префикс для кэша автозагрузки APCu. Неявно включает
--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
.
- Использовать пользовательский префикс для кэша автозагрузки APCu. Неявно включает
--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
.
- Автозагрузка классов только из classmap. Неявно включает опцию
--apcu-autoloader
- Использовать APCu для кэширования найденных и/иди не найденных классов.
--apcu-autoloader-prefix
- Использовать пользовательский префикс для кэша автозагрузки APCu. Неявно включает
--apcu-autoloader
.
- Использовать пользовательский префикс для кэша автозагрузки APCu. Неявно включает
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
.
- Автозагрузка классов только из classmap. Неявно включает опцию
--apcu-autoloader
- Использовать APCu для кэширования найденных и/или ненайденных классов.
--apcu-autoloader-prefix
- Использовать пользовательский префикс для кэша автозагрузки APCu. Неявно включает
--apcu-autoloader
.
- Использовать пользовательский префикс для кэша автозагрузки APCu. Неявно включает
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
.
- Автозагрузка классов только из classmap. Неявно включает опцию
--apcu-autoloader
- Использовать APCu для кэширования найденных и/или ненайденных классов.
--apcu-autoloader-prefix
- Использовать пользовательский префикс для кэша автозагрузки APCu. Неявно включает
--apcu-autoloader
.
- Использовать пользовательский префикс для кэша автозагрузки APCu. Неявно включает
--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
Команда 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.*
.
- Декодировать значение настройки в JSON для использования с ключами
--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
пакета от поставщика.
Для этого есть несколько вариантов применения:
- Вы можете развертывать пакеты приложений.
- Вы можете проверить любой пакет и начать разработку, например, на патчах.
- Проекты с несколькими разработчиками могут использовать эту возможность для загрузки начального приложения для разработки.
Чтобы создать новый проект с помощью 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. - Для конфигурации нескольких репозиториев можно использовать этот параметр несколько раз.
- Указывает пользовательский репозиторий для поиска пакета, который будет использоваться вместо packagist. Это может быть либо HTTP URL, указывающий на репозиторий
--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
.
- Автозагрузка классов только из classmap. Неявно включает опцию
--apcu
- Использовать APCu для кэширования найденных и/или ненайденных классов.
--apcu-prefix
- Использовать пользовательский префикс для кэша автозагрузки APCu. Неявно включает
--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
.
- Возвращать код состояния неудачи (1), если присутствуют ошибки сопоставления PSR-4 или PSR-0. Для работы требуется
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 в каталогах Composerhome
,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
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)