С Yii 1.1 на Yii 2.0, часть 2: Composer
20 августа 2014
Для установки Yii 1.1 и начала работы необходимо было скачать архив с сайта, распаковать его и выполнить в командной строкеyiic webapp
. В последних версиях появилась возможность работы через Composer, но установка из архива так и осталась основным способом. Архивы используются и для большинства расширений. К каждому прилагается свой readme, который объясняет как поставить и настроить каждое расширение.
Трудоёмкость процесса установки и обновления фреймворка и, в ещё большей степени, расширений навела на мысли, что в 2.0 небходимо всё это упорядочить и автоматизировать. Основным способом получения фреймворка и расширений стал Composer. Поставить его легко. Либо выполняем в командной строке:
curl -s http://getcomposer.org/installer | php
либо руками скачиваем с http://getcomposer.org/.
Больше вручную вам ничего качать не придётся. Совсем. Один подготовительный шаг следует выполнить один раз перед первой установкой Yii:
composer global require "fxp/composer-asset-plugin:1.0.0-beta4"
После этого первое приложение можно создать прямо из консоли:
php composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic /path/to/yii-application
Composer самостоятельно скачает всё необходимое и выставит права на директории и файлы.
Если с консолью у вас проблемы, с сайта всё ещё можно скачать фреймворк и базовые зависимости в виде архива и сделать всё как ранее (только yiic webapp делать не придётся). Однако, с консолью и Composer всё-таки лучше подружиться. Ручная установка расширений — дело очень трудоёмкое.
Полная документация Composer, которую очень полезно изучить, находится по адресу https://getcomposer.org/doc/. Здесь же приведу главные факты.
- Все пакеты (фреймворк — тоже пакет) устанавливаются в директорию
vendor
приложения. Руками туда лезть не стоит (если, конечно, не работаете над кодом одного из пакетов). Добавлять в репозиторий также незачем. - Ваше приложение — тоже пакет. Просто вы его не публикуете (скорее всего).
- Настройки главного пакета хранятся в
composer.json
. - Самая интересная секция в
composer.json
—require
. Это список пакетов, от которых зависит ваш, и их версий. При выполненииcomposer install
иcomposer update
перечислененые пакеты устанавливаются или обновляются автоматически.
Комментарии RSS по email OK
Спасибо, полезно. Как раз сейчас буду yii2 пробовать в проекте.
Я хоть и пользуюсь composer'ом, но не понимаю одну вещь. Подскажите пожалуйста: почему не стоит держать пакеты в репозитории? Я читал, что не рекомендуется, но есть 3 "но" которые меня смущают:
2XAKEPEHOK:
У меня был другой случай: репозиторий остался, ветка была мастер, и в какой то момент, в мастере стал совсем другой код, разработчики просто переписали всю историю и нельзя было выбрать старый комит. Пришлось править код, что уж тут поделать.
По поводу хранить\не хранить: каждый для себя выбирает сам, я использую composer уже 2 года (начинал еще с symfony 2.0) описанный мной случай единственный за все это время.
Композер - правильное решение. Впрочем, как и возможность вынести файлы фреймворка выше document root, phalcon-like работа с моделями и многое другое. Радует, что фреймворк развивается в правильном направлении.