Yii

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
Yii
Логотип программы Yii
Разработчик Команда разработчиков Yii
Разработчики Команда разработчиков Yii
Последняя версия 2.0.46 (19 августа 2022)
Состояние Активное

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

История

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

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

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

24 Марта 2020 вышел Yii 2.0.33[8]. Исправлено 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[9];
  3. Использование семантического версионирования SemVer[10];
  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.[14]

Документы и лицензии

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

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

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

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

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

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

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

CMS и CMF на YII

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

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

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

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

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

2012

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

2016

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

2017

  • Вторая профессиональная конференция веб разработчиков, использующих в своих приложениях фреймворк Yii. YiiConf-2017, Москва, 16-18 июня 2017[56][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[58]. — 2019. — С. 109.
  • Сафронов М. Разработка веб-приложений в Yii 2. — 5-е изд.. — СПб.: «ДМК Пресс», 2015. — С. 392. — ISBN 978-5-97060-252-2.

Ссылки

Примечания

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