- Настройка Composer для установки пакетов по заданным путям
- Указание type пакета для задания собственного пути установщика
- Как задать или переопределить путь установки для пакета Composer
- Важное замечание
Настройка Composer для установки пакетов по заданным путям
Каждый фреймворк может иметь один или несколько различных путей установки пакетов. Composer можно настроить на установку пакетов в папку, отличную от папки vendor
по умолчанию, с помощью composer/installers.
Указание type
пакета для задания собственного пути установщика
Если вы являетесь автором пакета и хотите, чтобы ваш пакет устанавливался в пользовательский каталог, потребуйте composer/installers
и установите соответствующий type
. Указание типа пакета отменяет путь установщика по умолчанию. Это часто бывает, если ваш пакет предназначен для конкретного фреймворка, например CakePHP, Drupal или WordPress. Вот пример файла composer.json
для темы WordPress:
{
"name": "you/themename",
"type": "wordpress-theme",
"require": {
"composer/installers": "~1.0"
}
}
Теперь, когда ваша тема будет установлена с помощью Composer, она будет помещена в папку wp-content/themes/themename/
. Проверьте текущие поддерживаемые типы для вашего пакета.
Как задать или переопределить путь установки для пакета Composer
Как получатель пакета вы можете задать или переопределить путь установки для пакета, требующего composer/installers
, с помощью дополнительной настройки installer-paths
. Полезным примером может быть установка Drupal на нескольких сайтах, когда пакет должен быть установлен в подкаталог вашего сайта. Ниже приводится переопределение путей установки для модуля, использующего composer/installers
, а также помещение всех пакетов типа drupal-theme
в папку themes
:
{
"extra": {
"installer-paths": {
"sites/example.com/modules/{$name}": ["vendor/package"],
"sites/example.com/themes/{$name}": ["type:drupal-theme"]
}
}
}
Теперь пакет будет установлен в выбранное вами место расположения папки, а не в место, определяемое composer/installers
по умолчанию. Кроме того, installer-paths
зависит от порядка, что означает, что перемещение пакета по имени должно происходить до пути установщика type:*
, который соответствует тому же пакету.
Важное замечание
Вы не можете использовать эту функцию для изменения пути к любому пакету. Это применимо только к пакетам, требующим composer/installers
и использующим пользовательский type
, который он обрабатывает.
Перевод с английского официальной документации Composer:
getcomposer.org
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)