Раздел config файла с настройками Composer composer.json
Раздел config файла настроек composer.json программы Composer
  1. process-timeout
  2. allow-plugins
  3. use-include-path
  4. preferred-install
  5. use-parent-dir
  6. store-auths
  7. github-protocols
  8. github-oauth
  9. gitlab-domains
  10. gitlab-oauth
  11. gitlab-token
  12. gitlab-protocol
  13. disable-tls
  14. secure-http
  15. bitbucket-oauth
  16. cafile
  17. capath
  18. http-basic
  19. bearer
  20. platform
  21. vendor-dir
  22. bin-dir
  23. data-dir
  24. cache-dir
  25. cache-files-dir
  26. cache-repo-dir
  27. cache-vcs-dir
  28. cache-files-ttl
  29. cache-files-maxsize
  30. cache-read-only
  31. bin-compat
  32. prepend-autoloader
  33. autoloader-suffix
  34. optimize-autoloader
  35. sort-packages
  36. classmap-authoritative
  37. apcu-autoloader
  38. github-domains
  39. github-expose-hostname
  40. use-github-api
  41. notify-on-install
  42. discard-changes
  43. archive-format
  44. archive-dir
  45. htaccess-protect
  46. lock
  47. platform-check
  48. secure-svn-domains


В этой главе будет описан раздел config схемы composer.json.

process-timeout

Таймаут в секундах для выполнения процессов, по умолчанию 300 (5 минут). Это время, в течение которого процессы, такие как git clones, могут выполняться, прежде чем Composer посчитает, что они завершились. Если у вас медленное соединение или огромные ресурсы, которые нужно принять/передать, это значение может потребоваться увеличить.

Для отключения таймаута процесса в пользовательской команде в разделе scripts доступен static helper:

{
    "scripts": {
        "test": [
            "Composer\\Config::disableProcessTimeout",
            "phpunit"
        ]
    }
}

allow-plugins

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

Начиная с версии Composer 2.2.0, опция allow-plugins добавляет уровень безопасности, позволяя вам ограничить, какие плагины Composer могут выполнять код во время работы Composer.

При первой активации нового плагина, который еще не указан в опции config, Composer выводит предупреждение. Если вы запустите Composer в интерактивном режиме, он предложит вам решить, хотите ли вы использовать плагин или нет.

Используйте этот параметр, чтобы разрешить выполнение кода только тем пакетам, которым вы доверяете. Установите его в объект с шаблонами имен пакетов в качестве ключей. Значения true - разрешить, false - запретить, подавляя дальнейшие предупреждения и подсказки.

{
    "config": {
        "allow-plugins": {
            "third-party/required-plugin": true,
            "my-organization/*": true,
            "unnecessary/plugin": false
        }
    }
}

Вы также можете установить для самого параметра allow-plugins в config значение false, чтобы запретить все плагины, или true, чтобы разрешить запуск всех плагинов (НЕ рекомендуется). Например:

{
    "config": {
        "allow-plugins": false
    }
}

use-include-path

По умолчанию имеет значение false. Если значение равно true, автозагрузчик Composer также будет искать классы в include path 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 или эквивалентная проверка системы контроля версий, которую использует пакет. Это полезно, если вы хотите внести исправление в проект и получить локальный git-клон зависимости напрямую.
  • auto - это унаследованное поведение, при котором Composer автоматически использует source для dev-версий, и dist в противном случае.
  • dist (по умолчанию в Composer 2.1) означает, что Composer устанавливается из dist, где это возможно. Обычно это загрузка zip-файла, что быстрее, чем клонирование всего репозитория.

Примечание: Порядок следования пакетов имеет значение. Более строгие компоненты должны быть раньше, чем более мягкие. При смешивании строковой нотации с хэш-конфигурацией в глобальных и пакетных конфигурациях строковая нотация переводится в * пакетный шаблон.

use-parent-dir

При запуске Composer в каталоге, где нет composer.json, если он есть в каталоге выше, Composer по умолчанию спросит вас, хотите ли вы использовать composer.json этого каталога вместо него.

Если вы хотите всегда отвечать "yes" на этот запрос, вы можете установить это значение в 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 не шифруется. Если вы хотите, чтобы URL-адреса удаленных push-адресов использовали https, а не ssh ([email protected]:...), установите в списке протоколов только ["https"], и Composer перестанет переписывать URL-адрес push на URL-адрес ssh.

github-oauth

Список доменных имен и oauth-ключей. Например, при использовании {"github.com": "oauthtoken"} в качестве значения этой настройки будет использовать oauthtoken для доступа к закрытым репозиториям на github и для обхода низкого ограничения скорости по IP-адресу в их API. При необходимости Composer может запросить учетные данные, но их также можно задать вручную. Подробнее о том, как получить OAuth-токен для GitHub и синтаксис cli, читайте здесь.

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 deploy token (https://docs.gitlab.com/ee/user/project/deploy_tokens/). Обратите внимание: если пакет размещен не на gitlab.com, доменные имена также должны быть указаны с помощью опции gitlab-domains. Дополнительную информацию можно найти здесь

gitlab-protocol

Протокол для принудительного использования при создании URL репозитория для значения source метаданных пакета. Один из git или http. (https рассматривается как синоним http). Полезно при работе с проектами, ссылающимися на частные репозитории, которые впоследствии будут клонированы в заданиях GitLab CI с GitLab CI_JOB_TOKEN с использованием HTTP basic auth. По умолчанию Composer будет генерировать git-over-SSH URL для частных репозиториев и HTTP(S) только для публичных.

disable-tls

По умолчанию имеет значение false. Если установлено значение true, все HTTPS-адреса будут пытаться использовать HTTP и шифрование на сетевом уровне не будет выполняться. Включение этого параметра представляет собой риск для безопасности и НЕ рекомендуется. Лучше включить расширение php_openssl в php.ini. Его включение неявно отключит опцию secure-http.

secure-http

По умолчанию имеет значение true. Если установлено значение true, через Composer можно загружать только URL-адреса по протоколу HTTPS. Если вам действительно необходим 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. Однако в долгосрочной перспективе вам следует установить необходимые расширения, так как если вы проигнорируете одно из них сейчас, а через месяц новый пакет, который вы добавите, также потребует его, вы можете неосознанно создать проблемы в production.

Если расширение установлено локально, но не на production, вы можете искусственно скрыть его от 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 будет загружать классы только из карты классов. Подразумевает optimize-autoloader.

apcu-autoloader

По умолчанию имеет значение false. Если true, автозагрузчик Composer будет проверять наличие APCu и использовать его для кэширования найденных/не найденных классов, когда расширение включено.

github-domains

По умолчанию ["github.com"]. Список доменов для использования в режиме github. Это используется для настроек GitHub Enterprise.

github-expose-hostname

По умолчанию имеет значение true. Если false, OAuth-токены, созданные для доступа к github API, будут содержать дату вместо имени хоста машины.

use-github-api

По умолчанию имеет значение true. Аналогично ключу no-api для конкретного репозитория, установка use-github-api в false определит глобальное поведение для всех репозиториев GitHub - клонировать репозиторий, как это делается с любым другим git-репозиторием, вместо использования GitHub API. Но в отличие от прямого использования драйвера git, Composer все равно будет пытаться использовать zip-файлы GitHub.

notify-on-install

По умолчанию имеет значение true. Composer позволяет репозиториям определять URL уведомления, чтобы они получали уведомления всякий раз, когда устанавливается пакет из этого репозитория. Эта опция позволяет отключить такое поведение.

discard-changes

По умолчанию имеет значение false и может быть любым из true, false или "stash". Этот параметр позволяет задать стиль обработки грязных обновлений по умолчанию в неинтерактивном режиме. true будет всегда отбрасывать изменения в списках вендоров, в то время как "stash" будет пытаться сохранить их и применить повторно. Используйте эту опцию для CI-серверов или скриптов развертывания, если у вас есть тенденция к изменению поставщиков.

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"], чтобы разрешить использование svn URL на этом хосте. Это лучшая/более безопасная альтернатива полному отключению secure-http.

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

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

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