Yii
Yii (акроним от «Yes It Is!», произносится [ji:] и часто пишется по рус. йии[3]) — объектно-ориентированный компонентный фреймворк, реализующий парадигму MVC[4].
Yii | |
---|---|
Тип | веб-фреймворк |
Автор | Цян Суэ[d] |
Разработчики | Команда разработчиков Yii |
Написана на | PHP[1] |
Операционная система | кроссплатформенность |
Первый выпуск | 1 января 2008 |
Последняя версия | |
Состояние | Активное |
Лицензия | модифицированная лицензия BSD[d] |
Сайт | yiiframework.com (англ.) |
История
История Yii началась 1 января 2008 года как проект по исправлению некоторых изъянов во фреймворке PRADO (PHP Rapid Application Development Object-oriented), ставшего в 2004 победителем «Zend PHP 5 coding contest»[5][6].
Фреймворк PRADO был попыткой перенести ASP.NET на платформу PHP, включая ViewState, PostBacks, Page_Load и OnClick, вследствие чего встречались участки кода просто скопированные из ASP.NET. Например, разделение на Rare Fields и Occasional Fields в классе Control[7] с целью оптимизации по памяти, которое имеет смысл в .NET, но представляет сомнительную ценность в PHP. PRADO унаследовал от ASP.NET почти все отрицательные стороны: медленно обрабатывал сложные страницы, имел крутую кривую обучения и был довольно труден в настройке[8].
В определенный момент основатель и разработчик ядра фреймворка PRADO[9] — Цян Суэ понял, что PHP-фреймворк должен быть построен несколько по-другому. В октябре 2008 года, после более 10 месяцев закрытой разработки, вышла первая альфа-версия. 3 декабря 2008 был выпущен Yii 1.0[4]
24 Марта 2020 вышел Yii 2.0.33[10]. Исправлено 22 ошибки, сделано 4 улучшения. Вышли расширения:
- Shell 2.0.3.
- Twig 2.4.0.
- Redis 2.0.12.
- Gii 2.2.0.
Релиз Yii 3 планируется в 2020 году. Среди новых расширений:
- Поддержка различных СУБД Redis, MongoDB;
- Оформление кода по PSR[11];
- Использование семантического версионирования SemVer[12];
- DDD-совместимость;
- Отделение консоли от веба;
- Разбиение на части, которые можно использовать отдельно;
- Строгая типизация;
- SOLID;
- Убийство иерархии классов;
- Убийство большинства wrapper-расширений;
- Отказ от нестандартных объектов;
- Swoole / RoadRunner.
Возможности
Фреймворк отлично документирован: документация есть ко всему и на нескольких языках (русский, украинский, английский, испанский и другие). Также каждый метод имеет шапку в PHPDoc.
- установка с помощью Composer.
- Высокая производительность относительно других фреймворков, написанных на PHP[13]
- Парадигма Модель-представление-контроллер
- Интерфейсы DAO и ActiveRecord для работы с базами данных (PDO)
- Поддержка интернационализации
- Кэширование страниц и отдельных фрагментов
- Перехват и обработка ошибок
- Ввод и валидация форм
- Аутентификация и авторизация (RBAC и ACL)
- Использование AJAX и интеграция с jQuery. Со второй версии добавлена поддержка Bootstrap,
- Генерация базового PHP-кода для CRUD-операций (скаффолдинг)
- Поддержка тем оформления для их лёгкой смены
- Возможность подключения сторонних библиотек
- Миграции базы данных
- Автоматическое тестирование
- Поддержка REST (добавлена со второй версии)
- Использование шаблонизаторов Twig, Smarty[14]
- Интерфейс командной строки(CLI - Console Line Interface)[15]: например выполнив в консоли команду php yii можно получить список всех доступных команд
Расширения
Проект Yii включает в себя хранилище пользовательских расширений.
Была также официальная библиотека расширения, zii, которая в конечном итоге была объединена с основной структурой; она была включена в каждую версию с версии Yii версии 1.1.0 и включает в себя дополнительные поведения и виджеты, такие как сетки и пользовательский интерфейс jQuery.
Yii и шаблоны проектирования (паттерны)
Аналогично другим фреймворкам в Yii используются паттерны Dependency Injection (DI) и Service Locator.[16]
Документы и лицензии
В Yii имеется сборник официальной документации, такой как учебное пособие по разработке простого приложения для блога, руководство, в котором дается описание каждой функции и ссылки на класс, которая дает каждую деталь о свойствах, методах и событиях. Также есть документация, предоставленная пользователями, большая часть которой доступна в вики на официальном веб-сайте.
Yii выпущен под новой лицензией BSD (лицензия 3-оговорки). Это означает, что можно использовать его бесплатно для разработки как открытых, так и проприетарных веб-приложений. Текст, содержащийся в Официальной документации Yii, лицензируется для общественности в соответствии с лицензией GNU Free Documentation License (GFDL). В общем, содержание документации Yii можно копировать, модифицировать и перераспределять до тех пор, пока новая версия предоставляет одни и те же свободы другим и признает авторов используемой документации Yii. Логотип лицензирован в соответствии с лицензией Creative Commons Attribution-No Derivative Works 3.0 Unported License
Сравнение с другими фреймворками
По результатам тестов phpmark Yii показал лучшую производительность[13].
Справедливости ради необходимо отметить, что производительность фреймворков в этих тестах оценивалась на искусственных примерах типа Hello world. Тесты показывают время инициализации фреймворков, и на основании их можно лишь сделать вывод, что Yii имеет качественную подсистему отложенной инициализации (то есть, код загружается только тогда, когда он необходим). Подтвержденной информации о том, что Yii в «боевых условиях» работает быстрее, чем другие фреймворки, нет.
В блогосфере можно найти массу статей со сравнительным анализом фреймворков. В целом, прослеживаются следующие тенденции:
- Yii активно развивается[17][18].
- В некоторых сравнительных работах отмечается высокая скорость изучения фреймворка, получения результатов и прототипирования по сравнению с Zend Framework и Symfony. Также отмечается его стабильность и безопасность[19][20].
CMS и CMF на YII
Yii достаточно популярен среди разработчиков, на его основе существуют множество различных систем управления сайтами
- Yupe CMS[21] - это бесплатная платформа для разработки веб-приложений: интернет-магазинов, сайтов-сообществ, CRM-систем
- SakuraCommerce[22] - интернет магазин на Yii2
- Easyii CMS[23] - набор инструментов для быстрой разработки и простого управления контентом
- Open Business Card CMS[24] - это простой бесплатный скрипт для создания сайтов-визиток
- Open Real Estate CMS[25] - CMS для агентства недвижимости
- Canape CMS - проприетарная CMS[26]
- SkeekS CMS[27] - бесплатная CMS, позволяет построить веб-приложения любой сложности: простые сайты, сложные порталы, интернет-магазины, CRM-системы.
История версий
Цвет | Обозначение |
---|---|
Красный | Старая версия, не поддерживается |
Жёлтый | Старая версия, пока поддерживается |
Зелёный | Текущая версия |
Голубой | Будущая версия |
Ветка | Версия | Дата выпуска | Окончание поддержки | Системные требования |
---|---|---|---|---|
1.0 | 1.0 | 3 декабря 2008 | 31 декабря 2010 | PHP 5.1.0 или выше |
1.0.1 | 4 января 2009 | |||
1.0.2 | 1 февраля 2009 | |||
1.0.3 | 1 марта 2009 | |||
1.0.4 | 5 апреля 2009 | |||
1.0.5 | 10 мая 2009 | |||
1.0.6 | 7 июня 2009 | |||
1.0.7 | 5 июля 2009 | |||
1.0.8 | 9 августа 2009 | |||
1.0.9 | 6 сентября 2009 | |||
1.0.10 | 18 октября 2009 | |||
1.0.11 | 13 декабря 2009 | |||
1.0.12 | 14 марта 2010 | |||
1.1 | 1.1.0 | 10 января 2010 | 31 декабря 2015
до 1 декабря 2019 поддержка безопасности кода[28] |
PHP 5.1.0 или выше |
1.1.1 | 14 марта 2010 | |||
1.1.2 | 2 мая 2010 | |||
1.1.3 | 4 июля 2010 | |||
1.1.4 | 5 сентября 2010 | |||
1.1.5 | 14 ноября 2010 | |||
1.1.6 | 16 января 2011 | |||
1.1.7 | 26 марта 2011 | |||
1.1.8 | 26 июня 2011 | |||
1.1.9 | 1 января 2012 | |||
1.1.10 | 12 февраля 2012[29] | |||
1.1.11 | 29 июля 2012[30] | |||
1.1.12 | 19 августа 2012[31] | |||
1.1.13-RC | 2 декабря 2012[32] | |||
1.1.13 | 30 декабря 2012[33] | |||
1.1.14 | 11 августа 2013[34] | |||
1.1.15 | 29 июня 2014[35] | |||
1.1.16 | 21 декабря 2014[36] | |||
1.1.17 | 13 января 2016[37] | |||
1.1.18 | 19 апреля 2017[28] | |||
1.1.19 | 8 июня 2017[38] | |||
1.1.20 | 6 июля 2018[39] | |||
2.0 | 2.0.0 | 12 октября 2014 | PHP 5.4.0 и выше[40] | |
2.0.1 | 7 декабря 2014 | |||
2.0.2 | 11 января 2015 | |||
2.0.3 | 1 марта 2015 | |||
2.0.4 | 10 мая 2015 | |||
2.0.5 | 11 июля 2015 | |||
2.0.6 | 10 августа 2015 | |||
2.0.7 | 14 февраля 2016 | |||
2.0.8 | 28 апреля 2016 | |||
2.0.9 | 11 июля 2016[41] | |||
2.0.10 | 20 октября 2016[42] | |||
2.0.11 | 1 февраля 2017[43] | |||
2.0.12 | 5 июня 2017[44] | |||
2.0.13 | 3 ноября 2017 | |||
2.0.14 | 19 февраля 2018[45] | |||
2.0.15 | 20 марта 2018[46] | |||
2.0.16 | 31 января 2019 |
События, встречи
2012
- Первая профессиональная конференция веб разработчиков, использующих в своих приложениях фреймворк Yii. YiiConf-2012, Киев, 19 мая 2012[47]
2016
- Yii2 встреча. Dev Pizza с Дмитрием Науменко «Профилирование в PHP с XDebug, XHprof, Blackfire». Киев, 17 мая 2016[48]
- Хакатон по Yii Framework в TACC, конференции DevConf. Москва, 18 и 19 июня 2016[49][50]
- Yii2 митап с Михаилом Боднарчуком, Киев 13 июля 2016[51]
- Лекция Дмитрия Немеша. Киев. 21 июля 2016[52]
- WebCamp. Одесса, 29-31 июля 2016[53]
- PHP frameworks day. Киев, 3 сентября, 2016.[54]
- Мини-конференция по Yii 2. Киев, 24 сентября 2016[55]
- PHP Party в Иваново, 26 Ноября 2016[56]
- Встреча Yii-разработчиков. Киев, 7 декабря 2016[57]
Книги
- Merkel, Dirk. Chapter 6: PHP Frameworks // Expert PHP 5 Tools. — Packt Publishing, 2010. — ISBN 978-1-847198-38-9.
- Winesett, Jeffrey. Agile Web Application Development with Yii1.1 and PHP5 (англ.). — Packt Publishing, 2010. — ISBN 978-1-847199-58-4.
- Makarov, Alexander. Yii 1.1 Application Development Cookbook. — Packt Publishing, 2011. — ISBN 978-1-84951-548-1.
- Ullman, Larry. The Yii Book. — Larry Ullman, 2013.
- Winesett, Jeffrey. Web Application Development with Yii and PHP (англ.). — Packt Publishing, 2012. — ISBN 978-1-84951-872-7.
- O'Meara, JeLauren J.; Hamilton III, James R. Yii Rapid Application Development Hotshot (англ.). — Packt Publishing, 2012. — ISBN 978-1-84951-750-8.
- Макаров, Александр. Yii. Сборник рецептов. — ДМК Пресс, 2012. — ISBN 978-5-94074-786-4.
- Alexander Makarov. Yii2 Application Development Cookbook[60]. — 2019. — С. 109.
- Сафронов М. Разработка веб-приложений в Yii 2. — 5-е изд.. — СПб.: «ДМК Пресс», 2015. — С. 392. — ISBN 978-5-97060-252-2.
Ссылки
- yiiframework.com (англ.) — официальный сайт Yii
- Русскоязычное сообщество
- Вопросы и ответы по yii
- План развития новых версий
- Список сайтов разработанных на Yii
- Ежегодная конференция посвященная PHP фреймворкам
- RoadMap Yii - план развития фреймворка
- Блог - RMCreative посвященный веб-разработке
- Yii PHP framework - группа в Facebook
Примечания
- The yii Open Source Project on Open Hub: Languages Page — 2006.
- Release 2.0.42 — 2021.
- Александр Макаров. Произносим правильно - RMCreative . rmcreative.ru. Дата обращения: 27 апреля 2017.
- About Yii . Дата обращения: 22 августа 2010. Архивировано 27 апреля 2012 года.
- About PRADO . Дата обращения: 22 августа 2010. Архивировано 27 апреля 2012 года.
- PHP5 Coding Competition Winners, Google Blogoscoped (26 октября 2004). Дата обращения 7 февраля 2012.
- PRADO, TControl source Архивировано 24 августа 2014 года.
- Yii: a high-performance framework inheriting Prado (6 октября 2008). Дата обращения: 22 августа 2010. Архивировано 27 апреля 2012 года.
- Qiang Xue, Fabio Bas. PRADO PHP Framework . www.pradoframework.net. Дата обращения: 4 ноября 2016.
- Yii 2.0.33 | News | Yii PHP Framework
- PHP-FIG — PHP Framework Interop Group - PHP-FIG
- Семантическое Версионирование 2.0.0 | Semantic Versioning
- Performance of Yii (недоступная ссылка). Дата обращения: 7 сентября 2011. Архивировано 19 августа 2010 года.
- Руководство по Smarty | Smarty
- Специальные темы: Консольные команды | Полное руководство по Yii 2.0 | Yii PHP Framework
- "Dependency Injection и Service Locator в Yii 2" - Дмитрий Науменко на Yii2 conference - YouTube
- Yii Q&A 1 (англ.). samdark.github.io. Дата обращения: 27 апреля 2017.
- Yii 1.1.9
- Evaluierung von PHP Frameworks
- Сравнение популярных PHP-фреймворков
- Юпи! - система управления сайтами (CMS) на Yiiframework
- https://sakuracommerce.com
- Easyii Yii2 CMS
- MonoRay.ru - Продукты - Open Business Card
- https://open-real-estate.info
- Эффективная CMS для продвижения сайта от WebCanape — Canape CMS
- SkeekS CMS (Yii2 CMS) — система управления интернет проектами, создание веб-проектов, система управления внутренним порталом компании
- http://www.yiiframework.com/news/133/yii-1-1-18-is-released/.
- Yii Framework Change Log
- Yii Framework Change Log
- http://www.yiiframework.com/files/CHANGELOG-1.1.12.txt
- http://www.yiiframework.com/files/CHANGELOG-1.1.13-RC.txt
- http://www.yiiframework.com/files/CHANGELOG-1.1.13.txt
- http://static.yiiframework.com/files/CHANGELOG-1.1.14.txt
- http://static.yiiframework.com/files/CHANGELOG-1.1.15.txt
- http://static.yiiframework.com/files/CHANGELOG-1.1.16.txt
- https://raw.githubusercontent.com/yiisoft/yii/1.1.17/CHANGELOG .
- Александр Макаров. Yii 1.1.19 .
- Yii 1.1.20 is released (англ.). Yii Framework. Дата обращения: 17 августа 2018.
- Download Yii Framework | Yii Framework
- Yii 2.0.9 . Дата обращения: 26 июля 2016.
- Yii 2.0.10 is released | News | Yii PHP Framework . www.yiiframework.com. Дата обращения: 4 ноября 2016.
- Yii 2.0.11 is released | News | Yii PHP Framework (англ.). www.yiiframework.com. Дата обращения: 7 февраля 2017.
- Yii 2.0.12 is released | News | Yii PHP Framework (англ.). www.yiiframework.com. Дата обращения: 7 июня 2017.
- Yii 2.0.14 is released | News | Yii PHP Framework (англ.). www.yiiframework.com. Дата обращения: 8 марта 2018.
- Releasing Yii 2.0.15 and database extensions with security fixes (англ.). Yii Framework. Дата обращения: 17 августа 2018.
- Конференция YiiConf 2012 / Киев, Украина . 2012.yiiconf.ru. Дата обращения: 4 июля 2017.
- Dev Pizza с Дмитрием Науменко «Профилирование в PHP с XDebug, XHprof, Blackfire» . www.facebook.com. Дата обращения: 4 июля 2017.
- Прошёл хакатон по Yii Framework в TACC (рус.). Дата обращения 4 июля 2017.
- Александр Макаров. Хакатон по Yii Framework в TACC, отчёт - RMCreative . rmcreative.ru. Дата обращения: 4 июля 2017.
- Intellectday: Yii2 meet up . www.facebook.com. Дата обращения: 4 июля 2017.
- 21 июля, Киев. Лекция Дмитрия Немеша - Yii Framework . yiiframework.ru. Дата обращения: 4 июля 2017.
- WebCamp - 29-31 июля, Одесса - Yii Framework . yiiframework.ru. Дата обращения: 4 июля 2017.
- 3 сентября в Киеве PHP frameworks day - Yii Framework . yiiframework.ru. Дата обращения: 4 июля 2017.
- Yii 2 Conference 2016, Киев - Yii Framework . yiiframework.ru. Дата обращения: 4 июля 2017.
- Александр Макаров. Иваново 2016, отчёт - RMCreative . rmcreative.ru. Дата обращения: 4 июля 2017.
- Киев 07.12.2016 - Yii Framework . yiiframework.ru. Дата обращения: 4 июля 2017.
- YiiConf 2017 .
- samdark. YiiConf 2017, слайды, фото и подкаст . yiiframework.ru. Дата обращения: 4 июля 2017.
- GitHub - samdark/yii2-cookbook: Yii 2.0 Community Cookbook