четверг, 23 ноября 2017 г.

Метод тыка при установке расширений через 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.

Комментариев нет:

Отправить комментарий

Рабочий способо убрать хрип микрофона в Ubuntu 18.04

Переходим по ссылке и делаем также как в видео https://www.reddit.com/r/Ubuntu/comments/6zq3ca/remove_background_noise_on_the_mic_in_ubun...