Русская Википедия:Yii

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Карточка программы

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

История

История Yii началась 1 января 2008 года как проект по исправлению некоторых изъянов во фреймворке Шаблон:Нп5 (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]

Книги

Ссылки

Примечания

Шаблон:Примечания

Шаблон:PHP

  1. Шаблон:Cite web
  2. 2,0 2,1 Шаблон:Cite web
  3. Шаблон:Cite web
  4. Шаблон:Cite news
  5. PRADO, TControl source Шаблон:Webarchive
  6. Шаблон:Cite web
  7. Шаблон:Cite web
  8. Шаблон:Cite web
  9. Шаблон:Cite web
  10. Шаблон:Cite web
  11. 11,0 11,1 Шаблон:Cite web
  12. Шаблон:Cite web
  13. Шаблон:Cite web
  14. "Dependency Injection и Service Locator в Yii 2" - Дмитрий Науменко на Yii2 conference - YouTube
  15. Шаблон:Cite web
  16. Шаблон:Cite web
  17. Шаблон:Cite web
  18. Шаблон:Cite web
  19. Шаблон:Cite web
  20. Шаблон:Cite web
  21. Шаблон:Cite web
  22. Шаблон:Cite web
  23. Шаблон:Cite web
  24. Шаблон:Cite web
  25. Шаблон:Cite web
  26. 26,0 26,1 Шаблон:Cite news
  27. Шаблон:Cite web
  28. Шаблон:Cite web
  29. Шаблон:Cite web
  30. Шаблон:Cite web
  31. Шаблон:Cite web
  32. Шаблон:Cite web
  33. Шаблон:Cite web
  34. Шаблон:Cite web
  35. Шаблон:Cite web
  36. Шаблон:Cite web
  37. Шаблон:Cite web
  38. Шаблон:Cite web
  39. Шаблон:Cite web
  40. Шаблон:Cite web
  41. Шаблон:Cite web
  42. Шаблон:Cite web
  43. Шаблон:Cite web
  44. Шаблон:Cite web
  45. Шаблон:Cite web
  46. Шаблон:Cite web
  47. Шаблон:Cite news
  48. Шаблон:Cite web
  49. Шаблон:Cite web
  50. Шаблон:Cite web
  51. Шаблон:Cite web
  52. Шаблон:Cite web
  53. Шаблон:Cite web
  54. Шаблон:Cite web
  55. Шаблон:Cite web
  56. Шаблон:Cite web
  57. Шаблон:Cite web