Настройка пользовательских путей через установщики
Некоторые фреймворки требуют, чтобы определённые пакеты устанавливались в конкретные каталоги за пределами стандартной директории vendor. Для этого в Composer можно использовать установщики (installers).
Например, многие CMS и фреймворки (Drupal, WordPress, Magento, Laravel) предоставляют свои установщики. Чтобы пакет устанавливался в нужную папку, укажите соответствующий тип в его composer.json:
Для настройки путей установки добавьте параметр installer-paths в секцию extra вашего composer.json. Например, чтобы установить пакеты типа framework-module в modules/{$name}/:
Убедитесь, что устанавливаемый пакет имеет правильный тип (например, wordpress-plugin, drupal-module). Если тип не указан, Composer использует стандартную папку vendor.
Для кастомных сценариев можно использовать события Composer, например ScriptEvents::POST_INSTALL_CMD, чтобы переместить файлы после установки.
Если пакет не поддерживает нужный тип, потребуется изменить его composer.json (например, через форк).
Перевод с английского официальной документации Composer: getcomposer.org