Как установить пакет в пользовательский путь для моей инфраструктуры?

Каждая инфраструктура может иметь один или несколько различных требуемых путей установки пакетов. Композитор может быть настроен для установки пакетов в папку, отличную от папки vendor по умолчанию, с помощью composer/installers.

Если вы являетесь автором пакета и хотите, чтобы ваш пакет был установлен в пользовательский каталог, просто попросите 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/. Проверьте текущие поддерживаемые типы для вашего пакета.

В качестве потребителя пакета вы можете установить или переопределить путь установки для пакета, который требует installer-paths, путем дополнительной настройки путей установки. Полезный пример был бы для установки multisite Drupal, где пакет должен быть установлен в подкаталог вашего сайта. Здесь мы переопределяем путь установки для модуля, который использует composer/installers:

{
 "extra": {
 "installer-paths": {
 "sites/example.com/modules/{$name}": ["vendor/package"]
 }
 }
}

Теперь пакет будет установлен в папку, а не в определенное местоположение композитора / установщика по умолчанию.

Примечание. Вы не можете использовать это, чтобы изменить путь к любому пакету. Это применимо только к пакетам, которые требуют composer/installers и используют настраиваемый тип, который он обрабатывает.