Метод тыка при установке расширений через composer вместе с Yii2

Хочу рассказать о моем подходе к использованию composer вместе с Yii2 с применение метода "Тыка".
Это кончено очень большой недостаток, что у меня не хватило терпения прочитать документацию по Composer, но я обязательно когда нибудь заполню этот пробел. А сейчас работаем с composer на уровне подготовки "ниже плинтуса"!
Берем любой свой рабочий проект на yii2, рабочий нужен именно для того, чтобы видеть какие проблемы будут вначале, и научиться их преодолевать.
Я для примера разверну basic шаблон приложения на своем localhost. Так как я чайник я просто скачаю архив с сайта yiiframework.com распакую его и выполню инициализацию.

Установка через командную строку

Хотя нет решил в первый раз попробовать не качать архив а все таки установить через composer, для этого ввел команду
composer global require "fxp/composer-asset-plugin:~1.1.1"
Дальше ввел команду для создания нового проекта Yii2
composer create-project yiisoft/yii2-app-basic basic 2.0.7
Важно заметить, что я ввожу не php composer.phar a composer, потому что я использую Windows и composer установлен у меня как обычное приложение.
После двух введенных команд composer попросил у меня сгенерировать токен на gitHub, и вежливо предложил ссылку для генерации токена, я вставил ссылку в браузер сгенирировал токен, и вставил назад в консоль, токен успешно сохранился.
После этого приложение установилось успешно.

Установка через архив

Для установки basic приложения c помощью архива скачайте архив с сайта, распакуйте файлы в нужную папку, перейдите в эту папку в командной строке, например, если ваш проект в папке C:\web\basic, введите команду cd C:\web\basic и запустите инициализацию приложения с помощью команды init - в Windows или php init - В другой ОС.
Хочется заметить, что установка через composer гораздо быстрее и удобнее!
Результат на картинке 

Отлично! теперь пробуем установить какое-нибудь расширение, например, как и делают многие я попробую установить vova07/yii2-imperavi-widget, захожу на Packagist.com вот сюда.
Прокрутив немного вниз вижу команду для установки
composer require --prefer-dist vova07/yii2-imperavi-widget "*"
Ввожу ее в консоль и нажимаю <Enter>. Да забыл напомнить, что мы должны находиться в дирректории с нашим проектом, в моем случае это C:\web\basic.
В ответ я получил Исключение:
[InvalidArgumentException]
  Could not find package yii.bat at any version for your minimum-stability (s
  table). Check the package spelling or your minimum-stability
Это исключение говорит о том, что уровень минимальной стабильности нашего приложения установлен как Стабильный, и он не соответствует уровню стабильности виджета, который соответствует dev. открываем composer.json, который лежит в корне нашего шаблона и меняем
"minimum-stability": "stable",
меняем на dev.
И в результате получаем то же самое исключение! Неожиданно правда! Вроде бы все сделали нормально! Не знаю как решить эту проблему, поэтому идем обходным путем, используем второй вариант установки вписываем строку:
"vova07/yii2-imperavi-widget": "*"
В секцию require composer.json файла. и выполняем команду:
composer update
В результате Вы скорее всего увидите кучу сообщений Fail, что-то там.. не знаю о чем конкретно они говорят, но значат они то, что тот модуль о котором говорит текущее сообщение уже установлен, ну а наш виджет скачается удачно, и все зависимости сгенерируются удачно! А это то что нам нужно! Теперь можем использовать редактор, вот результат:
 


Хочется заметить, что Вам не стоит путать composer update с командой composer install, потому что именно после вызова composer install, на сколько я понимаю, composer конечно скачает вам виджет, но вместе с этим он удалит все файлы yii2, потому что в composer.lock установлены данные настройки.

Заключение

На этом впринципе и все! процесс установки расширений через composer очень прост, особенно если учитывать, что в composer.json для Yii2 всегда есть нужная структура зависимостей. И также хочется напомнить, чтобы Вы не забывали, чтобы в корневой дирректории лежал файл composer.lock, который не даст composer поновой загружать всю кодовую базу yii2.

Комментарии

Популярные сообщения из этого блога

Установка утилиты yandex disk для ubuntu

Отправка пост запроса AngularJS