Yii — это высокоэффективный основанный на компонентной структуре PHP-фреймворк для разработки масштабных веб-приложений. Он позволяет максимально применить концепцию повторного использования кода и может существенно ускорить процесс веб-разработки.
Основным способом получения фреймворка и расширений является Composer.
Composer (getcomposer.org) — популярный менеджер зависимостей для PHP. Описание зависимости своего проекта от каких библиотек позволит Composer их установит и поддерживать актуальность.
Установка потребует выполнение в консоли нескольких простых и пару подготовительных этапов.
curl -sS https://getcomposer.org/installer | php |
Полученный файл копируем в директорию, где окружение командной оболочки пытается его найти
mv composer.phar /usr/local/bin/composer |
Подготовительные этапы:
1) Перед установкой Yii, выполняем следующую команду:
composer global require "fxp/composer-asset-plugin:1.0.0-beta4" |
2) Для увеличения лимитов обращения к github
Получаем API ключ по ссылке https://github.com/settings/applications
Could not fetch https://api.github.com/repos/jquery/jquery/commits/9434e03193c45d51bbd063a0edd1a07a6178d33f, enter your GitHub credentials to go over the API rate limit |
Добавляем ключ в настройки composer того пользователя, от которого идет установка:
#cat /root/.composer/auth.json { "github-oauth": { "github.com": "secretAPIkey" } } |
Или можно в папке с auth.json выполняем команду:
composer config github-oauth.github.com secretAPIkey |
Создаем свое приложение.
За основу возьмем шаблон «yiisoft/yii2-app-basic» или «yiisoft/yii2-app-advanced». Первый похож на первый Yii и служит для простых конфигураций, второй, ориентирован для разделения приложения на пользовательскую часть и модуль администрирования.
composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic /path/to/yii |
Composer самостоятельно скачает всё необходимое и выставит права на директории и файлы.
Все пакеты устанавливаются в директорию vendor. Настройки хранятся в composer.json.
В секции require файла composer.json — список зависимостей пакетов и их версий. «composer install» и «composer update» перечитает пакеты и обновит их автоматически.
Для себя, после создания проекта я выношу директорию web на один уровень с фреймворком, и именно эту папку прописываю в качестве
При этом у меня несколько видоизменяется стартовый index.php
require(__DIR__ . '/../yii/vendor/autoload.php'); require(__DIR__ . '/../yii/vendor/yiisoft/yii2/Yii.php'); $config = require(__DIR__ . '/../yii/config/web.php'); |
Скорее всего все заработает с первой попытки. У меня же инсталляция на маке заработала с первой попытки, а вот под linux завести сразу не удалось. В логах web сервера всплывала ошибка:
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 1118067257 bytes) in /vendor/yiisoft/yii2/log/Logger.php on line 121 |
При этом, выделение дополнительной памяти проблему не решало.
Для решения необходимо запустить в консоли или лучше с браузера файл:
php requirements.php |
Yii2 требует PHP 5.4 и несколько подключенных расширений. В моем случае обновлении php до последней версии и установка пакета «php-intl» решила проблему.