<rmcreative>

RSS

Как поставить расширение на Yii 2.0 без Composer

24 февраля 2015

Не первый раз спрашивают, как поставить расширение Yii 2.0 без Composer. Отвечаю.

Ставить будем yii2-imperavi-widget.

  • Идём в https://github.com/vova07/yii2-imperavi-widget/releases, забираем архив.
  • Смотрим его composer.json.
  • Там у нас есть секция autoload, в ней упоминание PSR-4 и vova07/imperavi.
  • Распаковываем файлы в vendor/vova07/imperavi.
  • В vendor/composer/autoload_psr4.php добавляем:
'vova07\\imperavi\\' => array($vendorDir . '/vova07/imperavi/src'),
  • В vendor/yiisoft/extensions.php добавляем:
'vova07/imperavi' => array (
    'name' => 'vova07/imperavi',
    'version' => '2',
    'alias' => array (
        '@vova07/imperavi' => $vendorDir . '/vova07/imperavi/src',
    ),
),

Всё это делает за вас Composer. Лучше изучите его и не теряйте время.

Комментарии RSS

  1. №9641
    Алексей S c
    Алексей S c 24 февр. 2015 г., 18:41:39

    Извините конечно, но лучше бы пост сократить до:

    Как поставить расширение на Yii 2.0 без Composer Лучше изучите его и не теряйте время.

  2. №9642
    Demon_id
    Demon_id 24 февр. 2015 г., 19:02:27

    Спасибо! ) Уже разобрался, но два месяца назад потратил на это время )

    Лучше изучите его и не теряйте время.

    Не всегда хочется выносить свой экстеншн/виджет написанный строго под один сайт в гит. Проще оставить его прямо в проекте и прописать неймспейс по psr-4.

  3. №9644
    Алексей S c
    Алексей S c 25 февр. 2015 г., 0:57:19

    Проще оставить его прямо в проекте

    учитывая, что папка vendor в игноре :) как вы на продакшен это будете выливать?

  4. №9645
    Алексей S c
    Алексей S c 25 февр. 2015 г., 1:04:17

    очепятка

    Распаковываем файлы в vendor/vova07/impravi

  5. №9646
    Demon_id
    Demon_id 25 февр. 2015 г., 1:08:23

    учитывая, что папка vendor в игноре :) как вы на продакшен это будете выливать?

    я не говорил что "оставить в проекте" значит положить в vendor

  6. №9647
    Василий
    Василий 25 февр. 2015 г., 9:14:46

    учитывая, что папка vendor в игноре :) как вы на продакшен это будете выливать?

    Берём и убираем из игнора всю папку, и добавляем только не, в которых уверены, что будут установлены заново или обновлены через композер. Глупый аргумент, если честно.

  7. №9648
    Алексей S c
    Алексей S c 25 февр. 2015 г., 18:16:55

    Глупый аргумент, если честно.

    Ручками сделать можно что угодно, мы же программисты. Только есть best practice и некие "стандарты". А можно и на продакшене ручками код писать через ssh конечно

  8. №9651
    Василий
    Василий 26 февр. 2015 г., 12:10:39

    Только есть best practice и некие "стандарты".

    Ткните носом, пожалуйста, на это.

    И потом, следовать всему подряд - ни к чему хорошему еще не приводило. Технически нужно мыслить, технически. (с)

  9. №9652
    Nepster
    Nepster 26 февр. 2015 г., 13:58:12

    Старые дедовские способо разворачивания проекта через ftp.

  10. №9654
    Илья
    Илья 26 февр. 2015 г., 14:20:08

    Не всегда хочется выносить свой экстеншн/виджет написанный строго под один сайт в гит. Проще оставить его прямо в проекте и прописать неймспейс по psr-4.

    В таком случае нет смысла хранить код виджета в /vendor. Можно положить его в другой каталог, не связанный с композером.

  11. №9657
    Demon_id
    Demon_id 27 февр. 2015 г., 0:48:54

    В таком случае нет смысла хранить код виджета в /vendor. Можно положить его в другой каталог, не связанный с композером.

    читайте внимательно комментарии, до того как оставлять свои.

  12. №9658
    Etki
    Etki 01 марта 2015 г., 5:52:05

    (Касательно комментариев, а не поста) Если это часть приложения, написанная под один сайт, то зачем ее вообще выносить?

  13. №9660
    pavlm
    pavlm 02 марта 2015 г., 15:00:37

    Правильнее будет добавлять неймспейс в секцию autoload/psr-4 в composer.json проекта, а потом запустить composer.phar dumpautoload.
    Здесь описано: getcomposer.org/doc/01-basic-usage.md#autoloading

  14. №9671
    Артём
    Артём 04 марта 2015 г., 14:47:37

    Можно попробовать использовать composer.borreli.com/ этот сервис. Скачать архив и скопировать папку в vendor, и посмотреть autoload

  15. №10751
    Сергей
    Сергей 13 нояб. 2016 г., 15:54:32

    Исправьте пути. Там где написано '/vova07/imperavi' нужно '/vova07/imperavi/src'.

  16. №10752
    Sam
    Sam 13 нояб. 2016 г., 16:25:48

    Сергей, поправил. Спасибо!

  17. №10754
    Андрей
    Андрей 14 нояб. 2016 г., 22:47:14

    До сих пор на бОльшей куче хостингов нет поддержки composer, или вобще доступа к директории выше /www. Так что не надо пожалуйста про "изучите", "дедовские способы" или "best practice и некие "стандарты"

  18. №10756
    Sam
    Sam 15 нояб. 2016 г., 12:50:35

    Андрей, за те же деньги, что стоит большинство хостингов, уже можно взять простенькую VPS-ку и делать с ней всё, что вздумается.

  19. №10845
    barsik.xyz
    barsik.xyz 31 янв. 2017 г., 15:24:24

    а у меня на хостинге вообще ничего не ставится, т.к. не хватает памяти для composer, толку его изучать...

  20. №11074
    ivan
    ivan 13 сент. 2017 г., 16:03:23

    Problem 1 - onmotion/yii2-gallery 1.1.9 requires bower-asset/blueimp-gallery >=v2.17.0 -> no matching package found.

    так и не смог поставить этот blueimp-gallery ( [InvalidArgumentException] Could not find package bower-asset/blueimp-gallery at any version for your minimum-stability (stable). )

    пришлось таким ручным методом установить onmotion этот и всё заработало. спасибо

    А вообще, почему так мало нормальных extension на yii2?

  21. №11288
    Вячеслав
    Вячеслав 01 авг. 2018 г., 8:21:21

    Внёс изменения в файлы, залил... а дальше?

  22. №12077
    Макс
    Макс 28 дек. 2020 г., 0:12:09

    Вообще composer - вещь очень не надёжная. Я, к примеру, брезгую. В своём проекте я знаю все папки и что и как происходит. Композером что-то куда-то ставится. Мне противно от этого, где-то образуется мрак. Но вопрос не в этом.

    Прошу автора статьи дать пояснения относительно того, где используются ключи и значения обоих массивов, которые надо добавить в файлы, а именно, что такое

    'vova07\\imperavi\\'

    , - строка с двойными обратными слешами, для чего?

    array($vendorDir . '/vova07/imperavi/src'),
    'vova07/imperavi' => array (
        'name' => 'vova07/imperavi',
        'version' => '2',
        'alias' => array (
            '@vova07/imperavi' => $vendorDir . '/vova07/imperavi/src',

    Почему при таком дублировании 'vova07/imperavi' нельзя загнать это в переменную? Почему ключ

    'vova07/imperavi'

    везде равен ключу значения

    'name' => 'vova07/imperavi'

    , Зачем делать такое дублирование кода?

    Почему все расширения нельзя делать по одному стандарту? Где-то есть папка src, где-то нет. где-то в названиях изаются большие буквы (lysenkobv\GeoIP), где-то нет.

    Спасибо.

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.