Spec-Zone.ru › Composer

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API