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