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