Config
В этом разделе будет описан раздел config схемы composer.json схемы.
process-timeout
Таймаут в секундах для выполнения процессов, по умолчанию 300 (5 минут). Длительность работы процессов, таких как клонирование git, прежде чем Composer предположит, что они завершились. Возможно, вам потребуется увеличить это значение, если у вас медленное подключение или очень большие зависимости.
Чтобы отключить таймаут процесса для пользовательской команды в scripts, доступен статический помощник:
{
"scripts": {
"test": [
"Composer\\Config::disableProcessTimeout",
"phpunit"
]
}
} allow-plugins
По умолчанию {}, что не позволяет загружать какие-либо плагины.
Начиная с Composer 2.2.0, параметр allow-plugins добавляет уровень безопасности, позволяющий ограничить, какие плагины Composer могут выполнять код во время работы Composer.
Когда новый плагин впервые активируется, если он еще не указан в параметре конфигурации, Composer выведет предупреждение. Если вы запускаете Composer в интерактивном режиме, он предложит вам решить, хотите ли вы выполнить плагин или нет.
Используйте этот параметр, чтобы разрешить выполнение кода только тем пакетам, которым вы доверяете. Установите его в объект, ключами которого являются шаблоны имен пакетов. Значения — true для разрешения и false для запрета, при этом подавляя дальнейшие предупреждения и запросы.
{
"config": {
"allow-plugins": {
"third-party/required-plugin": true,
"my-organization/*": true,
"unnecessary/plugin": false
}
}
} Вы также можете установить сам параметр конфигурации в false для запрета всех плагинов или true для разрешения выполнения всех плагинов (НЕ рекомендуется). Например:
{
"config": {
"allow-plugins": false
}
} use-include-path
По умолчанию false. Если true, автозагрузчик Composer также будет искать классы в пути включения PHP.
preferred-install
По умолчанию dist и может быть любым из source, dist или auto. Этот параметр позволяет установить предпочитаемый метод установки, который будет использовать Composer. Можно необязательно указать объект с шаблонами имен пакетов в качестве ключей для более точной настройки предпочтений установки.
{
"config": {
"preferred-install": {
"my-organization/stable-package": "dist",
"my-organization/*": "source",
"partner-organization/*": "auto",
"*": "dist"
}
}
} -
sourceозначает, что Composer будет устанавливать пакеты из ихsource, если таковой имеется. Обычно это клонирование git или эквивалентное создание копий репозитория версий управления версиями, которые использует пакет. Это полезно, если вы хотите внести исправление в проект и получить локальное клонирование зависимости непосредственно. -
auto— это устаревшее поведение, когда Composer автоматически используетsourceдля версий dev иdistв противном случае. -
dist(по умолчанию с Composer 2.1) означает, что Composer устанавливает изdist, где это возможно. Обычно это скачивание zip-файла, что быстрее, чем клонирование всего репозитория.
Примечание: Порядок имеет значение. Более конкретные шаблоны должны предшествовать более общим. При смешении строкового обозначения с конфигурацией хеша в глобальных и пакетах конфигураций, строковое обозначение преобразуется в шаблон пакета
*
use-parent-dir
При запуске Composer в каталоге, где нет composer.json, если таковой присутствует в каталоге выше, Composer по умолчанию спросит вас, хотите ли вы использовать composer.json этого каталога вместо него.
Если вы всегда хотите ответить на этот запрос утвердительно, установите это значение конфигурации в true. Чтобы никогда не задавать вопрос, установите его в false. Значение по умолчанию — "prompt".
Примечание: Этот параметр конфигурации должен быть установлен в вашей глобальной конфигурации пользователя, чтобы он работал. Используйте, например,
php composer.phar config --global use-parent-dir true, чтобы установить его.
store-auths
Что делать после запроса аутентификации, один из следующих вариантов: true (всегда сохранять), false (не сохранять) и "prompt" (спрашивать каждый раз), по умолчанию "prompt".
github-protocols
По умолчанию ["https", "ssh", "git"]. Список протоколов для использования при клонировании с github.com в порядке приоритета. По умолчанию git присутствует, но только если secure-http отключен, так как протокол git не зашифрован. Если вы хотите, чтобы ваши адреса удаленного push-репозитория использовали https, а не ssh (git@github.com:...), установите список протоколов только на ["https"], и Composer перестанет перезаписывать адрес push-URL на адрес ssh-URL.
github-oauth
Список доменных имён и ключей oauth. Например, использование {"github.com": "oauthtoken"} в качестве значения этого параметра будет использовать oauthtoken для доступа к закрытым репозиториям на github и для обхода низкого лимита скорости API на основе IP. Composer может запросить учетные данные при необходимости, но их также можно задать вручную. Подробнее о том, как получить токен OAuth для GitHub и синтаксис командной строки, можно узнать здесь.
gitlab-domains
По умолчанию ["gitlab.com"]. Список доменов серверов GitLab. Используется, если вы используете тип репозитория gitlab
gitlab-oauth
Список доменных имён и ключей oauth. Например, использование {"gitlab.com": "oauthtoken"} в качестве значения этого параметра будет использовать oauthtoken для доступа к закрытым репозиториям на gitlab. Обратите внимание: если пакет не размещён на gitlab.com, доменные имена также должны быть указаны с параметром gitlab-domains. Дополнительную информацию можно найти здесь.
gitlab-token
Список доменных имён и частных токенов. Частный токен может быть либо простой строкой, либо массивом с именем пользователя и токеном. Например, использование {"gitlab.com": "privatetoken"} в качестве значения этого параметра будет использовать privatetoken для доступа к закрытым репозиториям на gitlab. Использование {"gitlab.com": {"username": "gitlabuser", "token": "privatetoken"}} будет использовать имя пользователя и токен для функциональности токенов развертывания gitlab (https://docs.gitlab.com/ee/user/project/deploy_tokens/). Обратите внимание: если пакет не размещён на gitlab.com, доменные имена также должны быть указаны с параметром gitlab-domains. Токен должен иметь api или read_api область. Дополнительную информацию можно найти здесь.
gitlab-protocol
Протокол для принудительного использования при создании URL репозитория для значения source метаданных пакета. Один из git или http. (https рассматривается как синоним http). Полезно при работе с проектами, ссылающимися на закрытые репозитории, которые впоследствии будут клонированы в заданиях GitLab CI с GitLab CI_JOB_TOKEN, используя HTTP базовую аутентификацию. По умолчанию Composer будет генерировать URL git-over-SSH для закрытых репозиториев и HTTP(S) только для открытых.
disable-tls
По умолчанию false. Если установлено в true, все HTTPS-URL будут проверяться с HTTP, и шифрование на уровне сети не будет выполняться. Включение этого параметра представляет собой риск для безопасности и НЕ рекомендуется. Лучший способ — включить расширение php_openssl в php.ini. Включение этого параметра подразумевает отключение параметра secure-http.
secure-http
По умолчанию true. Если установлено в true, Composer будет разрешать скачивать только HTTPS-URL. Если вам действительно абсолютно необходим доступ к HTTP-ресурсу, то вы можете отключить его, но использование Let's Encrypt для получения бесплатного сертификата SSL — обычно лучший вариант.
bitbucket-oauth
Список доменных имён и потребителей. Например, используя {"bitbucket.org": {"consumer-key": "myKey", "consumer-secret": "mySecret"}}. Подробнее здесь.
cafile
Расположение файла Удостоверяющего центра на локальном файловом хранилище. В PHP 5.6+ следует установить это через openssl.cafile в php.ini, хотя PHP 5.6+ должен иметь возможность автоматически обнаруживать ваш системный файл CA.
capath
Если cafile не указан или сертификат не найден там, директория, на которую указывает capath, просматривается на наличие подходящего сертификата. capath должен быть правильно хэшированным каталогом сертификатов.
http-basic
Список доменных имён и имён пользователей/паролей для аутентификации по ним. Например, использование {"example.org": {"username": "alice", "password": "foo"}} в качестве значения этого параметра позволит Composer выполнить аутентификацию на example.org. Дополнительную информацию можно найти здесь.
bearer
Список доменных имён и токенов для аутентификации по ним. Например, использование {"example.org": "foo"} в качестве значения этого параметра позволит Composer выполнить аутентификацию на example.org с помощью заголовка Authorization: Bearer foo
platform
Позволяет подменять платформы пакетов (PHP и расширения), чтобы эмулировать производственную среду или определить целевую платформу в конфигурации. Пример: {"php": "7.0.3", "ext-something": "4.0.3"}.
Это обеспечит, что ни один пакет, требующий более чем PHP 7.0.3, не будет установлен независимо от фактической версии PHP, которую вы запускаете локально. Однако это также означает, что зависимости больше не проверяются правильно, если вы запускаете PHP 5.6, он установится, поскольку предполагается 7.0.3, но затем произойдет сбой во время выполнения. Это также означает, что если {"php":"7.4"} указан, не будут использоваться пакеты, в которых 7.4.1 определен как минимум.
Поэтому, если вы используете это, рекомендуется и безопаснее также запустить команду check-platform-reqs в рамках вашей стратегии развертывания.
Если зависимость требует какого-либо расширения, которого у вас нет локально установленного, вы можете проигнорировать его, передав --ignore-platform-req=ext-foo в update, install или require. В долгосрочной перспективе, однако, следует установить необходимые расширения, так как если вы проигнорируете одно сейчас, а новый пакет, который вы добавите через месяц, также потребует его, вы можете непреднамеренно создать проблемы в производстве.
Если у вас есть расширение, установленное локально, но НЕ в производственной среде, вы можете искусственно скрыть его от Composer, используя {"ext-foo": false}.
vendor-dir
По умолчанию vendor. Вы можете установить зависимости в другой каталог, если хотите. $HOME и ~ будут заменены путем к вашему домашнему каталогу в vendor-dir и все *-dir параметры ниже.
bin-dir
По умолчанию vendor/bin. Если проект включает бинарные файлы, они будут сохранены как символические ссылки в этот каталог.
data-dir
По умолчанию C:\Users\<user>\AppData\Roaming\Composer в Windows, $XDG_DATA_HOME/composer на unix-системах, которые следуют спецификациям XDG Base Directory, и $COMPOSER_HOME на других unix-системах. В настоящее время используется только для хранения предыдущих файлов composer.phar, чтобы иметь возможность вернуться к более старым версиям. См. также COMPOSER_HOME.
cache-dir
По умолчанию C:\Users\<user>\AppData\Local\Composer в Windows, /Users/<user>/Library/Caches/composer на macOS, $XDG_CACHE_HOME/composer на unix-системах, которые следуют спецификациям XDG Base Directory, и $COMPOSER_HOME/cache на других unix-системах. Хранит все кэши, используемые Composer. См. также COMPOSER_HOME.
cache-files-dir
По умолчанию $cache-dir/files. Хранит zip-архивы пакетов.
cache-repo-dir
По умолчанию $cache-dir/repo. Хранит метаданные репозитория для типа composer и VCS репозиториев типа svn, fossil, github и bitbucket.
cache-vcs-dir
По умолчанию $cache-dir/vcs. Хранит клоны VCS для загрузки метаданных VCS репозиториев для типов git/hg и для ускорения установки.
cache-files-ttl
По умолчанию 15552000 (6 месяцев). Composer кэширует все загруженные пакеты dist (zip, tar, ...). По умолчанию они удаляются через шесть месяцев без использования. Этот параметр позволяет настроить этот срок (в секундах) или полностью отключить его, установив значение 0.
cache-files-maxsize
По умолчанию 300MiB. Composer кэширует все загруженные пакеты dist (zip, tar, ...). При периодическом запуске сбора мусора это максимальный размер, который может использовать кэш. Сначала будут удалены более старые (менее используемые) файлы, пока кэш не подойдет под размер.
cache-read-only
По умолчанию false. Использовать кэш Composer в режиме только для чтения.
bin-compat
По умолчанию auto. Определяет совместимость устанавливаемых бинарных файлов. Если это auto, то Composer устанавливает только .bat-прокси-файлы в Windows или WSL. Если установлено full, то будут установлены оба файла .bat для Windows и скрипты для ОС на основе Unix для каждого бинарного файла. Это полезно, если вы запускаете Composer внутри виртуальной машины Linux, но все же хотите, чтобы .bat-прокси были доступны для использования в ОС Windows хоста. Если установлено proxy, Composer будет создавать только bash/Unix-стили прокси-файлов и никаких .bat-файлов даже в Windows/WSL.
prepend-autoloader
По умолчанию true. Если false, автозагрузчик Composer не будет добавлен в начало существующих автозагрузчиков. Это иногда требуется для решения проблем совместимости с другими автозагрузчиками.
autoloader-suffix
По умолчанию null. Непустая строка, используемая в качестве суффикса для сгенерированного автозагрузчика Composer. При null будет сгенерирован случайный.
optimize-autoloader
По умолчанию false. Если true, всегда оптимизировать при выгрузке автозагрузчика.
sort-packages
По умолчанию false. Если true, команда require сохраняет пакеты, отсортированные по имени в composer.json, при добавлении нового пакета.
classmap-authoritative
По умолчанию false. Если true, автозагрузчик Composer будет загружать классы только из classmap. Подразумевает optimize-autoloader.
apcu-autoloader
По умолчанию false. Если true, автозагрузчик Composer будет проверять APCu и использовать его для кеширования найденных/ненайденных классов, когда расширение включено.
github-domains
По умолчанию ["github.com"]. Список доменов для использования в режиме github. Используется для установок GitHub Enterprise.
github-expose-hostname
По умолчанию true. Если false, токены OAuth, созданные для доступа к API GitHub, будут содержать дату вместо имени хоста машины.
use-github-api
По умолчанию true. Аналогично ключу no-api в определенном репозитории, установка use-github-api в значение false определит общее поведение для всех репозиториев GitHub, чтобы клонировать репозиторий так, как это делается с любым другим репозиторием git вместо использования API GitHub. Но в отличие от прямого использования драйвера git, Composer все равно попытается использовать zip-файлы GitHub.
notify-on-install
По умолчанию true. Composer позволяет репозиториям определять URL уведомления, чтобы они получали уведомления всякий раз, когда устанавливается пакет из этого репозитория. Этот параметр позволяет отключить это поведение.
discard-changes
По умолчанию false и может быть любым из true, false или "stash". Этот параметр позволяет установить стиль обработки грязных обновлений по умолчанию при работе в неинтерактивном режиме. true всегда будет отбрасывать изменения в vendors, а "stash" будет пытаться спрятать и повторно применить. Используйте это для серверов CI или скриптов развертывания, если у вас часто есть измененные vendors.
archive-format
По умолчанию tar. Переопределяет формат по умолчанию, используемый командой архивации.
archive-dir
По умолчанию .. Предназначенное местоположение для архивов, созданных командой архивации.
Пример:
{
"config": {
"archive-dir": "/home/user/.composer/repo"
}
} htaccess-protect
По умолчанию true. Если установлено значение false, Composer не будет создавать файлы .htaccess в каталогах Composer home, cache и data.
lock
По умолчанию true. Если установлено значение false, Composer не будет создавать файл composer.lock и проигнорирует его, если он присутствует.
platform-check
По умолчанию php-only, которое проверяет только версию PHP. Установите значение true для проверки наличия расширения. Если установлено значение false, Composer не будет создавать и требовать файла platform_check.php как части загрузки автозагрузчика.
secure-svn-domains
По умолчанию []. Список доменов, которым следует доверять/отметить как использующие безопасный протокол Subversion/SVN. По умолчанию протокол svn:// считается небезопасным и будет вызывать ошибку, но вы можете установить этот параметр конфигурации на ["example.org"] для разрешения использования URL svn на этом хосте. Это лучший/более безопасный вариант, чем полное отключение secure-http.
← Репозитории | Время выполнения →
© Nils Adermann, Jordi Boggiano
Licensed under the MIT License.
https://getcomposer.org/doc/06-config.md