Языки программирования

Фреймворк Yii

Yii — это высокоэффективный основанный на компонентной структуре PHP-фреймворк для разработки масштабных веб-приложений. Он позволяет максимально применить концепцию повторного использования кода и может существенно ускорить процесс веб-разработки. Название Yii означает простой, эффективный и расширяемый.
Yii можно использовать для разработки любого вида веб-приложений. Благодаря своей основе компонентов, архитектуре и сложной поддержки кэширования, фреймворк подходит для разработки крупномасштабных проектов, таких как порталы, форумы, системы управления контентом (CMS), систем электронной коммерции, RESTful веб-сервисов и т.д.
Yii является full-stack фреймворком, предоставляя множество проверенных и готовых к использованию функций: построитель запросов и ActiveRecord для реляционных и NoSQL баз данных, RESTful API, поддержку многоуровневого кэширования и т.п.

История фреймворка

История Yii началась 1 января 2008 года, как проект по исправлению некоторых изъянов во фреймворке PRADO (PHP Rapid Application Development Object-oriented), ставшего в 2004 победителем «Zend PHP 5 coding contest».
Фреймворк PRADO был попыткой перенести ASP.NET на платформу PHP, включая ViewState, PostBacks, Page_Load и OnClick, вследствие чего встречались участки кода просто скопированные из ASP.NET.
В определенный момент основатель и разработчик ядра фреймворка PRADO — Цян Суэ понял, что PHP-фреймворк должен быть построен несколько по-другому. В октябре 2008 года, после более 10 месяцев закрытой разработки, вышла первая альфа-версия. 3 декабря 2008 был выпущен Yii 1.0.
24 Марта 2020 вышел Yii 2.0.33. Исправлено 22 ошибки, сделано 4 улучшения. Релиз Yii 3 планируется в 2020 году.

Основные преимущества и возможности фреймворка

  1. Обеспечивает высокую производительность относительно других php-фреймворков;
  2. Основан на парадигме MVC (Модель-Представление-Контроллер);
  3. Есть интерфейсы DAO и ActiveRecord для работы с базами данных (используется PDO);
  4. Поддерживает интернационализацию;
  5. Позволяет кешировать как страницы целиком, так и отдельные фрагменты;
  6. Осуществляет перехват и обработка ошибок;
  7. Имеет функционал работы с формами, обеспечивает их построение и валидацию;
  8. Реализованы аутентификация и авторизация;
  9. Удобен для реализации AJAX-интерфейсов, интегрируется с jQuery;
  10. В фреймворк встроены генераторы базового PHP-кода для CRUD-операций (скаффолдинг);
  11. Поддерживает темы оформления;
  12. Имеет возможность подключения сторонних библиотек;
  13. Работает с миграциями баз данных (генерация, применение и откат);
  14. Позволяет осуществлять автоматическое тестирование и вести разработку в стиле TDD;
  15. Поддерживает стиль REST.

Требования PHP

Yii 2.0 требует PHP 5.4 или выше, по сравнению с Yii 1.1, который использует PHP версии 5.2. В результате, есть много различий на уровне языка.
  1. Namespaces;
  2. Анонимные функции;
  3. Короткий синтаксис массива;
  4. Короткая запись открывающих и закрывающих php тегов;
  5. SPL классы и интерфейсы;
  6. Поздние статические привязки;
  7. Дата и время;
  8. Traits;
  9. intl расширение PHP для интернационализации.

Namespace

В Yii используются пространства имен, например, yii\web\Request. Имена присваиваются по структуре каталогов. Допустим, yii\web\Request указывает на то, что файл класса web/Request.php размещается в этом каталоге.

Компоненты и объекты

Yii содержит два основных класса: класса: yii\base\Object и yii\base\Component. Класс объекта это легкий базовый класс, который определяет свойства объекта с помощью геттеров и сеттереров (getters и setters). Компонент класса поддерживает события и поведение.

Версии

Существует две основных версии фреймворка — это 1.1 и 2.0. Вторая версия — это переписанный фреймворк с учетом последних технологий и протоколов (Composer, PSR, пространств имен и так далее).

Установка Yii

Фреймворк можно установить двумя способами: используя Composer или скачав архив. Первый способ предпочтительнее так как позволяет установить новые расширения или обновить Yii одной командой.

Установка при помощи Composer

Если Composer еще не установлен это можно сделать по инструкции на getcomposer.org. На Linux или Mac используйте следующую команду:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
После установки Composer устанавливать Yii можно запустив следующую команду в командной строке:
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
Эта команда устанавливает последнюю стабильную версию Yii в директорию basic. Хранится данная директория будет в папке пользователя. Если вы используете локальный сервер XAMPP, тогда необходимо закинуть директорию basic в папку htdocs.
По умолчанию

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

Установка Yii из архива состоит из трёх шагов:
  1. Скачайте архив с yiiframework.com;
  2. Распакуйте скачанный архив в папку, доступную из Web.
  3. В файле config/web.php добавьте секретный ключ в значение cookieValidationKey (при установке через Composer это происходит автоматически):
// !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
'cookieValidationKey' => 'enter your secret key here',

Проверка установки

После установки приложение будет доступно по следующему URL:
http://localhost/basic/web/index.php

Плюсы фреймворка

  1. Для русскоязычных разработчиков большим плюсом фреймворка, является хорошая документация, множество статей с примерами кода и сообщество;
  2. Yii не показатель одного человека, фреймворк подкреплен сильной командой разработчиков ядра, а также большим сообществом профессионалов постоянно способствующих развитию Yii;
  3. Yii способствует быстрому прототипированию веб-приложения. Он относится к инструментам RAID разработки;
  4. Встроенный механизм создания виджетов представления, например, для размещения на сайте различных блоков: последние посты, категории, навигация, блоки рекламы и т.п;
  5. Компонент приложения i18n позволяет производить автоматический перевод сообщений веб-приложения;
  6. Встроенная поддержка автоматической валидации форм и вывода сообщений об ошибках на основе данных из моделей веб-приложения;
  7. Механизм Active Record для построения реляционной обработки запросов базы данных;
  8. Множество готовых расширений на Github и их установка через Composer;
  9. Встроенные виджеты для отображения данных: DetailView (строки в таблице), ListView (Список), GridView (таблицы);
  10. Встроенные механизмы для аутентификации, авторизации, регистрации пользователей;
  11. Содержит встроенную и очень удобную debug панель.

Минусы фреймворка

  1. Слабая экосистема вокруг фреймворка среди англоязычного сегмента разработчиков. Сообщество слишком сильно размазано по разным местам: несколько форумов с небольшой активностью, stackoverflow и т.п;
  2. Хоть фреймворк и позволяет делать код простым, но далеко не элегантным. Если его синтаксис сравнивать с фреймворком Laravel, то он уступает;
  3. Yii отстает от языка, стандартов и других фреймворков. Новые обновления с действительно полезными функциями выходят не так часто;
  4. Слишком большая связанность backend и frontend частей Yii2. Фреймворк предлагает использовать библиотеку jQuery и Bootstrap, которые встроены по умолчанию в ядро фреймворка;
  5. Не очень гибкая система маршрутизации: нет возможности сгруппировать роуты.
Самоучитель по PHP