Иногда необходимо подключить расширение Yii2 в обход Composer.
Например, в каком-то расширении обнаружился досадный баг. Сообщили разработчикам, ждём исправления... Но что делать с нашим приложением, пока баг не исправлен?
Можно исправить код прямо в папке "vendor". Но этого делать не стоит - в первую очередь потому, что править придётся на каждой машине, где установлено приложение, включая продакшн. И при любом обновлении файлы затрутся.
Выход - подключить расширение в обход стандартного механизма Composer. Это делается легко.
1. Удаляем расширение из зависимостей Composer.
composer remove coolvendor/coolextension
2. Качаем нужную версию расширения из репозитория в виде архива, распаковываем в какую-нибудь папку проекта. Например, "common/external/coolvendor/coolextension-1.0.0".
3. Указываем алиас в соответствии с именем расширения.
return [
...
'aliases' => [
'@coolvendor/coolextension' => '@common/external/coolvendor/coolextension-1.0.0',
...
]
];
Готово!
Можем пользоваться расширением, с тем же удобством, как если оно было подключено через Composer.
Когда необходимость в отдельном подключении отпадёт - например, разработчики исправили мешающий баг - можно легко и быстро вернуть расширение на своё место. Удаляем папку расширения, удаляем алиас, подключаем расширение через Composer.
Например, в каком-то расширении обнаружился досадный баг. Сообщили разработчикам, ждём исправления... Но что делать с нашим приложением, пока баг не исправлен?
Можно исправить код прямо в папке "vendor". Но этого делать не стоит - в первую очередь потому, что править придётся на каждой машине, где установлено приложение, включая продакшн. И при любом обновлении файлы затрутся.
Выход - подключить расширение в обход стандартного механизма Composer. Это делается легко.
1. Удаляем расширение из зависимостей Composer.
composer remove coolvendor/coolextension
2. Качаем нужную версию расширения из репозитория в виде архива, распаковываем в какую-нибудь папку проекта. Например, "common/external/coolvendor/coolextension-1.0.0".
3. Указываем алиас в соответствии с именем расширения.
return [
...
'aliases' => [
'@coolvendor/coolextension' => '@common/external/coolvendor/coolextension-1.0.0',
...
]
];
Готово!
Можем пользоваться расширением, с тем же удобством, как если оно было подключено через Composer.
Когда необходимость в отдельном подключении отпадёт - например, разработчики исправили мешающий баг - можно легко и быстро вернуть расширение на своё место. Удаляем папку расширения, удаляем алиас, подключаем расширение через Composer.