Работа с пользовательскими директориями при установке Composer-пакетов
Как настроить нестандартные пути установки пакетов в Composer

Пользовательские пути для установки пакетов Composer

Старт! Честный VDS/VPS, на котором «Лунная База» живет уже 20+ лет

Задумываетесь о том, чтобы поднять свой pet-проект, сайт клиента или настроить окружение для разработки? Уже пора подумать, где арендовать железо.

Лунная База хостится на FirstVDS более 20 лет. Мыслей о том, чтобы перебраться на другой хостинг, не было ни разу (хотя опыт работы с другими вариантами, конечно, есть).

Бывали разные ситуации, но они бывают на любом железе. Главное, что нужно понять: здесь нет маркетинговой шелухи и сказок про «мы всё сделаем за вас». Если вы берете VDS — вам дают полный root, возможность накатить любую ОС и не лезут в ваши конфиги.

Если в саппорт написать с вопросом по вашему коду и получить ответ: «Читайте документацию и разбирайтесь сами» или «Обратитесь к профильному специалисту» — это не повод обижаться. Это повод углубить свои знания в DevOps и сайтостроении! Бегите от тех, кто пообещает: «Мы всё чиним и настраиваем абсолютно бесплатно!». Никто никогда не работает «по доброте душевной» в ущерб себе, а бесплатный сыр в администрировании обычно заканчивается сломанной базой данных.

Что по факту: Гибкое масштабирование ядер и RAM, экономия по сравнению с физическими серверами и адекватная панель ispmanager, если она вам нужна.



Настройка пользовательских путей через установщики

Некоторые фреймворки требуют, чтобы определённые пакеты устанавливались в конкретные каталоги за пределами стандартной директории 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

Самый честный хостинг за 20+ лет существования Лунной Базы

Задумываешься о том, чтобы поднять свой сайт в Интернете? Уже пора подумать о том, какой хостинг выбрать?

Лунная База хостится 20+ лет на firstDVS. При этом, мыслей о том, чтобы перебраться на другой хостинг не было. (Но, при этом есть опыт работы с другими вариантами.)

Бывали с firstDVS разные ситуации, но, они бывают на всех хостингах. Единственное, что тут важно понять, - это то, что никто ничего тебе не будет впаривать... Но, и работать за тебя тоже никто не станет. Если в саппорт ответили: «Читайте по ссылке и разбирайтесь сами...» или вообще «Обратитесь за помощью к специалисту», - это повод углубить свои знания в области сайтостроения, а не бежать к тем, что пообещают: «Мы всё чиним и всё делаем за своих клиентов абсолютно бесплатно!» Никто никогда ничего ни за кого "по доброте душевной" не делал, не делает и не будет делать!

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню