Yii

Yii (произносится [ji:] и часто пишется по рус. йии[2]) — объектно-ориентированный компонентный фреймворк, реализующий парадигму MVC[3]. В китайском языке Yii означает «простой и прогрессивный», также Yii представляет собой акроним от «Yes It Is!».

Yii
Логотип программы Yii
Тип веб-фреймворк
Автор Цян Суэ[d]
Разработчики Команда разработчиков Yii
Написана на PHP[1]
Операционная система кроссплатформенность
Первый выпуск 1 января 2008
Последняя версия 2.0.46 (19 августа 2022)
Состояние Активное
Лицензия модифицированная лицензия BSD[d]
Сайт yiiframework.com​ (англ.)

ИсторияПравить

История Yii началась 1 января 2008 года как проект по исправлению некоторых изъянов во фреймворке PRADO[en] (PHP Rapid Application Development Object-oriented), ставшего в 2004 победителем «Zend PHP 5 coding contest»[4][5].

Фреймворк PRADO был попыткой перенести ASP.NET на платформу PHP, включая ViewState, PostBacks, Page_Load и OnClick, вследствие чего встречались участки кода просто скопированные из ASP.NET. Например, разделение на Rare Fields и Occasional Fields в классе Control[6] с целью оптимизации по памяти, которое имеет смысл в .NET, но представляет сомнительную ценность в PHP. PRADO унаследовал от ASP.NET почти все отрицательные стороны: медленно обрабатывал сложные страницы, имел крутую кривую обучения и был довольно труден в настройке[7].

В определенный момент основатель и разработчик ядра фреймворка PRADO[8] — Цян Суэ понял, что PHP-фреймворк должен быть построен несколько по-другому. В октябре 2008 года, после более 10 месяцев закрытой разработки, вышла первая альфа-версия. 3 декабря 2008 был выпущен Yii 1.0[3]

24 Марта 2020 вышел Yii 2.0.33[9]. Исправлено 22 ошибки, сделано 4 улучшения. Вышли расширения:

  • Shell 2.0.3.
  • Twig 2.4.0.
  • Redis 2.0.12.
  • Gii 2.2.0.

Релиз Yii 3 планируется в 2020 году. Среди новых расширений:

  1. Поддержка различных СУБД Redis, MongoDB;
  2. Оформление кода по PSR[10];
  3. Использование семантического версионирования SemVer[11];
  4. DDD-совместимость;
  5. Отделение консоли от веба;
  6. Разбиение на части, которые можно использовать отдельно;
  7. Строгая типизация;
  8. SOLID;
  9. Убийство иерархии классов;
  10. Убийство большинства wrapper-расширений;
  11. Отказ от нестандартных объектов;
  12. Swoole / RoadRunner.

ВозможностиПравить

Фреймворк отлично документирован: документация есть ко всему и на нескольких языках (русский, украинский, английский, испанский и другие). Также каждый метод имеет шапку в PHPDoc.

РасширенияПравить

Проект Yii включает в себя хранилище пользовательских расширений.

Была также официальная библиотека расширения, zii, которая в конечном итоге была объединена с основной структурой; она была включена в каждую версию с версии Yii версии 1.1.0 и включает в себя дополнительные поведения и виджеты, такие как сетки и пользовательский интерфейс jQuery.

Yii и шаблоны проектирования (паттерны)Править

Аналогично другим фреймворкам в Yii используются паттерны Dependency Injection (DI) и Service Locator.[15]

Документы и лицензииПравить

В Yii имеется сборник официальной документации, такой как учебное пособие по разработке простого приложения для блога, руководство, в котором дается описание каждой функции и ссылки на класс, которая дает каждую деталь о свойствах, методах и событиях. Также есть документация, предоставленная пользователями, большая часть которой доступна в вики на официальном веб-сайте.

Yii выпущен под новой лицензией BSD (лицензия 3-оговорки). Это означает, что можно использовать его бесплатно для разработки как открытых, так и проприетарных веб-приложений. Текст, содержащийся в Официальной документации Yii, лицензируется для общественности в соответствии с лицензией GNU Free Documentation License (GFDL). В общем, содержание документации Yii можно копировать, модифицировать и перераспределять до тех пор, пока новая версия предоставляет одни и те же свободы другим и признает авторов используемой документации Yii. Логотип лицензирован в соответствии с лицензией Creative Commons Attribution-No Derivative Works 3.0 Unported License

Сравнение с другими фреймворкамиПравить

По результатам тестов phpmark Yii показал лучшую производительность[12].

Производительность фреймворков в этих тестах оценивалась на искусственных примерах типа Hello world. Тесты показывают время инициализации фреймворков, и на основании их можно лишь сделать вывод, что Yii имеет качественную подсистему отложенной инициализации (то есть, код загружается только тогда, когда он необходим). Подтвержденной информации о том, что Yii в реальных условиях работает быстрее, чем другие фреймворки, нет.

В блогосфере можно найти массу статей со сравнительным анализом фреймворков. В целом, прослеживаются следующие тенденции:

  • Yii активно развивается[16][17].
  • В некоторых сравнительных работах отмечается высокая скорость изучения фреймворка, получения результатов и прототипирования по сравнению с Zend Framework и Symfony. Также отмечается его стабильность и безопасность[18][19].

CMS и CMF на YIIПравить

Yii достаточно популярен среди разработчиков, на его основе существуют множество различных систем управления сайтами

  • Yupe CMS[20] - это бесплатная платформа для разработки веб-приложений: интернет-магазинов, сайтов-сообществ, CRM-систем
  • SakuraCommerce[21] - интернет магазин на Yii2
  • Easyii CMS[22] - набор инструментов для быстрой разработки и простого управления контентом
  • Open Business Card CMS[23] - это простой бесплатный скрипт для создания сайтов-визиток
  • Open Real Estate CMS[24] - CMS для агентства недвижимости
  • Canape CMS - проприетарная CMS[25]
  • SkeekS CMS[26] - бесплатная 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

поддержка безопасности кода[27]

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[28]
1.1.11 29 июля 2012[29]
1.1.12 19 августа 2012[30]
1.1.13-RC 2 декабря 2012[31]
1.1.13 30 декабря 2012[32]
1.1.14 11 августа 2013[33]
1.1.15 29 июня 2014[34]
1.1.16 21 декабря 2014[35]
1.1.17 13 января 2016[36]
1.1.18 19 апреля 2017[27]
1.1.19 8 июня 2017[37]
1.1.20 6 июля 2018[38]
2.0 2.0.0 12 октября 2014 PHP 5.4.0 и выше[39]
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[40]
2.0.10 20 октября 2016[41]
2.0.11 1 февраля 2017[42]
2.0.12 5 июня 2017[43]
2.0.13 3 ноября 2017
2.0.14 19 февраля 2018[44]
2.0.15 20 марта 2018[45]
2.0.16 31 января 2019

События, встречиПравить

2012Править

  • Первая профессиональная конференция веб разработчиков, использующих в своих приложениях фреймворк Yii. YiiConf-2012, Киев, 19 мая 2012[46]

2016Править

  • Yii2 встреча. Dev Pizza с Дмитрием Науменко «Профилирование в PHP с XDebug, XHprof, Blackfire». Киев, 17 мая 2016[47]
  • Хакатон по Yii Framework в TACC, конференции DevConf. Москва, 18 и 19 июня 2016[48][49]
  • Yii2 митап с Михаилом Боднарчуком, Киев 13 июля 2016[50]
  • Лекция Дмитрия Немеша. Киев. 21 июля 2016[51]
  • WebCamp. Одесса, 29-31 июля 2016[52]
  • PHP frameworks day. Киев, 3 сентября, 2016.[53]
  • Мини-конференция по Yii 2. Киев, 24 сентября 2016[54]
  • PHP Party в Иваново, 26 Ноября 2016[55]
  • Встреча Yii-разработчиков. Киев, 7 декабря 2016[56]

2017Править

  • Вторая профессиональная конференция веб разработчиков, использующих в своих приложениях фреймворк Yii. YiiConf-2017, Москва, 16-18 июня 2017[57][58]

КнигиПравить

  • Alexander Makarov. Yii2 Application Development Cookbook[59]. — 2019. — С. 109.

СсылкиПравить

ПримечанияПравить

  1. The yii Open Source Project on Open Hub: Languages Page — 2006.
  2. Александр Макаров. Произносим правильно - RMCreative. rmcreative.ru. Дата обращения: 27 апреля 2017. Архивировано 28 апреля 2017 года.
  3. 1 2 About Yii. Дата обращения: 22 августа 2010. Архивировано 27 апреля 2012 года.
  4. About PRADO. Дата обращения: 22 августа 2010. Архивировано 27 апреля 2012 года.
  5. PHP5 Coding Competition Winners, Google Blogoscoped (26 октября 2004). Архивировано 17 ноября 2011 года. Дата обращения: 7 февраля 2012.
  6. PRADO, TControl source Архивировано 24 августа 2014 года.
  7. Yii: a high-performance framework inheriting Prado (6 октября 2008). Дата обращения: 22 августа 2010. Архивировано 27 апреля 2012 года.
  8. Qiang Xue, Fabio Bas. PRADO PHP Framework. www.pradoframework.net. Дата обращения: 4 ноября 2016. Архивировано 4 июля 2016 года.
  9. Yii 2.0.33 | News | Yii PHP Framework. Дата обращения: 23 мая 2020. Архивировано 13 мая 2020 года.
  10. PHP-FIG — PHP Framework Interop Group - PHP-FIG. Дата обращения: 24 апреля 2020. Архивировано 24 апреля 2020 года.
  11. Семантическое Версионирование 2.0.0 | Semantic Versioning. Дата обращения: 23 мая 2020. Архивировано 5 июня 2020 года.
  12. 1 2 Performance of Yii. Дата обращения: 7 сентября 2011. Архивировано из оригинала 19 августа 2010 года.
  13. Руководство по Smarty | Smarty. Дата обращения: 24 апреля 2020. Архивировано 19 сентября 2020 года.
  14. Специальные темы: Консольные команды | Полное руководство по Yii 2.0 | Yii PHP Framework. Дата обращения: 23 мая 2020. Архивировано 20 октября 2020 года.
  15. "Dependency Injection и Service Locator в Yii 2" - Дмитрий Науменко на Yii2 conference - YouTube
  16. Yii Q&A 1 (англ.). samdark.github.io. Дата обращения: 27 апреля 2017. Архивировано 28 апреля 2017 года.
  17. Yii 1.1.9. Дата обращения: 30 сентября 2016. Архивировано 7 августа 2016 года.
  18. Evaluierung von PHP Frameworks. Дата обращения: 16 июля 2011. Архивировано 13 сентября 2012 года.
  19. Сравнение популярных PHP-фреймворков. Дата обращения: 17 июля 2011. Архивировано 4 сентября 2012 года.
  20. Юпи! - система управления сайтами (CMS) на Yiiframework. Дата обращения: 23 мая 2020. Архивировано 11 августа 2020 года.
  21. Архивированная копия. Дата обращения: 23 мая 2022. Архивировано 6 апреля 2022 года.
  22. Easyii Yii2 CMS. Дата обращения: 23 мая 2020. Архивировано 31 мая 2020 года.
  23. MonoRay.ru - Продукты - Open Business Card. Дата обращения: 4 декабря 2018. Архивировано 5 декабря 2018 года.
  24. Архивированная копия. Дата обращения: 23 мая 2022. Архивировано 16 мая 2022 года.
  25. Эффективная CMS для продвижения сайта от WebCanape — Canape CMS. Дата обращения: 21 марта 2018. Архивировано 21 марта 2018 года.
  26. SkeekS CMS (Yii2 CMS) — система управления интернет проектами, создание веб-проектов, система управления внутренним порталом компании. Дата обращения: 2 марта 2019. Архивировано 6 марта 2019 года.
  27. 1 2 http://www.yiiframework.com/news/133/yii-1-1-18-is-released/.
  28. Yii Framework Change Log. Дата обращения: 14 февраля 2012. Архивировано 16 февраля 2012 года.
  29. Yii Framework Change Log. Дата обращения: 1 августа 2012. Архивировано 1 августа 2012 года.
  30. Архивированная копия. Дата обращения: 25 августа 2012. Архивировано 22 августа 2012 года.
  31. Архивированная копия. Дата обращения: 5 декабря 2012. Архивировано 7 декабря 2013 года.
  32. Архивированная копия. Дата обращения: 7 января 2013. Архивировано 2 января 2013 года.
  33. Архивированная копия. Дата обращения: 15 августа 2013. Архивировано 14 августа 2013 года.
  34. Архивированная копия. Дата обращения: 1 июля 2014. Архивировано 7 июля 2014 года.
  35. Архивированная копия. Дата обращения: 22 декабря 2014. Архивировано 22 декабря 2014 года.
  36. https://raw.githubusercontent.com/yiisoft/yii/1.1.17/CHANGELOG. Дата обращения: 26 июля 2016. Архивировано 16 марта 2016 года.
  37. Александр Макаров. Yii 1.1.19. Дата обращения: 10 июня 2017. Архивировано 8 июня 2017 года.
  38. Yii 1.1.20 is released (англ.). Yii Framework. Дата обращения: 17 августа 2018. Архивировано 17 августа 2018 года.
  39. Download Yii Framework | Yii Framework. Дата обращения: 8 февраля 2011. Архивировано 15 августа 2020 года.
  40. Yii 2.0.9. Дата обращения: 26 июля 2016. Архивировано 7 августа 2016 года.
  41. Yii 2.0.10 is released | News | Yii PHP Framework. www.yiiframework.com. Дата обращения: 4 ноября 2016. Архивировано 3 ноября 2016 года.
  42. Yii 2.0.11 is released | News | Yii PHP Framework (англ.). www.yiiframework.com. Дата обращения: 7 февраля 2017. Архивировано 7 февраля 2017 года.
  43. Yii 2.0.12 is released | News | Yii PHP Framework (англ.). www.yiiframework.com. Дата обращения: 7 июня 2017. Архивировано 10 июня 2017 года.
  44. Yii 2.0.14 is released | News | Yii PHP Framework (англ.). www.yiiframework.com. Дата обращения: 8 марта 2018. Архивировано 5 марта 2018 года.
  45. Releasing Yii 2.0.15 and database extensions with security fixes (англ.). Yii Framework. Дата обращения: 17 августа 2018. Архивировано 17 августа 2018 года.
  46. Конференция YiiConf 2012 / Киев, Украина. 2012.yiiconf.ru. Дата обращения: 4 июля 2017. Архивировано 5 июля 2017 года.
  47. Dev Pizza с Дмитрием Науменко «Профилирование в PHP с XDebug, XHprof, Blackfire». www.facebook.com. Дата обращения: 4 июля 2017.
  48. Прошёл хакатон по Yii Framework в TACC (рус.). Архивировано 19 июня 2017 года. Дата обращения: 4 июля 2017.
  49. Александр Макаров. Хакатон по Yii Framework в TACC, отчёт - RMCreative. rmcreative.ru. Дата обращения: 4 июля 2017. Архивировано 23 июня 2017 года.
  50. Intellectday: Yii2 meet up. www.facebook.com. Дата обращения: 4 июля 2017.
  51. 21 июля, Киев. Лекция Дмитрия Немеша - Yii Framework. yiiframework.ru. Дата обращения: 4 июля 2017.
  52. WebCamp - 29-31 июля, Одесса - Yii Framework. yiiframework.ru. Дата обращения: 4 июля 2017.
  53. 3 сентября в Киеве PHP frameworks day - Yii Framework. yiiframework.ru. Дата обращения: 4 июля 2017.
  54. Yii 2 Conference 2016, Киев - Yii Framework. yiiframework.ru. Дата обращения: 4 июля 2017. Архивировано 21 сентября 2017 года.
  55. Александр Макаров. Иваново 2016, отчёт - RMCreative. rmcreative.ru. Дата обращения: 4 июля 2017. Архивировано 24 июня 2017 года.
  56. Киев 07.12.2016 - Yii Framework. yiiframework.ru. Дата обращения: 4 июля 2017. Архивировано 4 июля 2017 года.
  57. YiiConf 2017. Дата обращения: 4 июля 2017. Архивировано 13 июля 2017 года.
  58. samdark. YiiConf 2017, слайды, фото и подкаст. yiiframework.ru. Дата обращения: 4 июля 2017. Архивировано 3 июля 2017 года.
  59. GitHub - samdark/yii2-cookbook: Yii 2.0 Community Cookbook. Дата обращения: 24 апреля 2020. Архивировано 16 сентября 2020 года.