Yii

Поделись знанием:
Перейти к: навигация, поиск
Yii
Тип

программный каркас для создания веб-приложений

Разработчик

[www.yiiframework.com/about/ Yii developers team]

Написана на

PHP

Операционная система

кроссплатформенное ПО

Последняя версия

2.0.9 (11 июля 2016)

Лицензия

BSD

Сайт

[yiiframework.com ework.com]

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



История

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

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

PRADO унаследовал от ASP.NET почти все отрицательные стороны: медленно обрабатывал сложные страницы, имел крутую кривую обучения и был довольно труден в настройке[5].

В определенный момент автор (Qiang Xue) понял, что PHP-фреймворк должен быть построен несколько по-другому, и вот в октябре 2008 года, после более 10 месяцев закрытой разработки, вышла первая альфа-версия. 3 декабря 2008 был выпущен Yii 1.0[1]

Возможности

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

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

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

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

  • Yii активно развивается[7].
  • Yii не выглядит «монстром» по сравнению с фреймворками symfony и Zend Framework (у которых число строк кода соизмеримо с числом строк кода операционных систем)[8].
  • В некоторых сравнительных работах отмечается высокая скорость изучения фреймворка, получения результатов и прототипирования по сравнению с Zend Framework и Symfony. Также отмечается его стабильность и безопасность[9][10].

История версий

Цвет Обозначение
Красный Старая версия, не поддерживается
Жёлтый Старая версия, пока поддерживается
Зелёный Текущая версия
Голубой Будущая версия
Ветка Версия Дата выпуска Окончание поддержки Системные требования
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 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[11]
1.1.11 29 июля 2012[12]
1.1.12 19 августа 2012[13]
1.1.13-RC 2 декабря 2012[14]
1.1.13 30 декабря 2012[15]
1.1.14 11 августа 2013[16]
1.1.15 29 июня 2014[17]
1.1.16 21 декабря 2014[18]
1.1.17 13 января 2016[19]
2.0 2.0.0 12 октября 2014 PHP 5.4.0 и выше[20]
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[21]

Книги

  • 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. [yii.larryullman.com/index.php The Yii Book]. — Larry Ullman, 2013.
  • Winesett Jeffrey. Web Application Development with Yii and PHP. — Packt Publishing, 2012. — ISBN 978-1-84951-872-7.
  • Yii Rapid Application Development Hotshot. — Packt Publishing, 2012. — ISBN 978-1-84951-750-8.
  • Макаров Александр. Yii. Сборник рецептов. — ДМК Пресс, 2012. — ISBN 978-5-94074-786-4.

Напишите отзыв о статье "Yii"

Ссылки

  • [yiiframework.com Официальный сайт]
  • [yiiframework.ru Русскоязычное сообщество]
  • [yiiclipse.maziarz.org/ Yiiclipse — поддержка Yii для Eclipse PDT]
  • [www.chive-project.com Chive — аналог phpMyAdmin, разработанный с использованием Yii]
  • [ruhighload.com/post/%D0%9E%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F+YII Инструкция по оптимизации приложений на Yii]

Примечания

  1. 1 2 [www.yiiframework.com/about/ About Yii]. Проверено 22 августа 2010. [www.webcitation.org/67Et62Qq1 Архивировано из первоисточника 27 апреля 2012].
  2. [www.xisc.com/about/ About PRADO]. Проверено 22 августа 2010. [www.webcitation.org/67Et6Y26S Архивировано из первоисточника 27 апреля 2012].
  3. [blogoscoped.com/archive/2004_10_26_index.html PHP5 Coding Competition Winners], Google Blogoscoped (26 октября 2004). Проверено 7 февраля 2012.
  4. [prado3.googlecode.com/svn/trunk/framework/Web/UI/TControl.php PRADO, TControl source]
  5. [www.pradosoft.com/forum/index.php?topic=11022.msg48823#msg48823 Yii: a high-performance framework inheriting Prado] (6 October 2008). Проверено 22 августа 2010. [www.webcitation.org/67Et6xazV Архивировано из первоисточника 27 апреля 2012].
  6. [www.yiiframework.com/performance/ Performance of Yii]
  7. [habrahabr.ru/post/135595/ Yii 1.1.9]
  8. [www.whydrupal.ru/sravnenie-php-freimvorkov-kohana-yii-symfony-codeigniter Сравнение PHP фреймворков — Kohana Yii Symfony CodeIgniter]
  9. [www.scribd.com/doc/44712795/Evaluierung-von-PHP-Frameworks Evaluierung von PHP Frameworks]
  10. [www.cmsmagazine.ru/library/items/programming/php-frameworks-compare/ Сравнение популярных PHP-фреймворков]
  11. [www.yiiframework.com/files/CHANGELOG-1.1.10.txt Yii Framework Change Log]
  12. [static.yiiframework.com/files/CHANGELOG-1.1.11.txt Yii Framework Change Log]
  13. www.yiiframework.com/files/CHANGELOG-1.1.12.txt
  14. www.yiiframework.com/files/CHANGELOG-1.1.13-RC.txt
  15. www.yiiframework.com/files/CHANGELOG-1.1.13.txt
  16. static.yiiframework.com/files/CHANGELOG-1.1.14.txt
  17. static.yiiframework.com/files/CHANGELOG-1.1.15.txt
  18. static.yiiframework.com/files/CHANGELOG-1.1.16.txt
  19. [raw.githubusercontent.com/yiisoft/yii/1.1.17/CHANGELOG raw.githubusercontent.com/yiisoft/yii/1.1.17/CHANGELOG].
  20. [www.yiiframework.com/download/ Download Yii Framework | Yii Framework]
  21. [habrahabr.ru/post/305432/ Yii 2.0.9]. Проверено 26 июля 2016.

Отрывок, характеризующий Yii

– Ты решительно едешь, Andre? – сказала ему сестра.
– Слава богу, что могу ехать, – сказал князь Андрей, – очень жалею, что ты не можешь.
– Зачем ты это говоришь! – сказала княжна Марья. – Зачем ты это говоришь теперь, когда ты едешь на эту страшную войну и он так стар! M lle Bourienne говорила, что он спрашивал про тебя… – Как только она начала говорить об этом, губы ее задрожали и слезы закапали. Князь Андрей отвернулся от нее и стал ходить по комнате.
– Ах, боже мой! Боже мой! – сказал он. – И как подумаешь, что и кто – какое ничтожество может быть причиной несчастья людей! – сказал он со злобою, испугавшею княжну Марью.
Она поняла, что, говоря про людей, которых он называл ничтожеством, он разумел не только m lle Bourienne, делавшую его несчастие, но и того человека, который погубил его счастие.
– Andre, об одном я прошу, я умоляю тебя, – сказала она, дотрогиваясь до его локтя и сияющими сквозь слезы глазами глядя на него. – Я понимаю тебя (княжна Марья опустила глаза). Не думай, что горе сделали люди. Люди – орудие его. – Она взглянула немного повыше головы князя Андрея тем уверенным, привычным взглядом, с которым смотрят на знакомое место портрета. – Горе послано им, а не людьми. Люди – его орудия, они не виноваты. Ежели тебе кажется, что кто нибудь виноват перед тобой, забудь это и прости. Мы не имеем права наказывать. И ты поймешь счастье прощать.
– Ежели бы я был женщина, я бы это делал, Marie. Это добродетель женщины. Но мужчина не должен и не может забывать и прощать, – сказал он, и, хотя он до этой минуты не думал о Курагине, вся невымещенная злоба вдруг поднялась в его сердце. «Ежели княжна Марья уже уговаривает меня простить, то, значит, давно мне надо было наказать», – подумал он. И, не отвечая более княжне Марье, он стал думать теперь о той радостной, злобной минуте, когда он встретит Курагина, который (он знал) находится в армии.
Княжна Марья умоляла брата подождать еще день, говорила о том, что она знает, как будет несчастлив отец, ежели Андрей уедет, не помирившись с ним; но князь Андрей отвечал, что он, вероятно, скоро приедет опять из армии, что непременно напишет отцу и что теперь чем дольше оставаться, тем больше растравится этот раздор.
– Adieu, Andre! Rappelez vous que les malheurs viennent de Dieu, et que les hommes ne sont jamais coupables, [Прощай, Андрей! Помни, что несчастия происходят от бога и что люди никогда не бывают виноваты.] – были последние слова, которые он слышал от сестры, когда прощался с нею.
«Так это должно быть! – думал князь Андрей, выезжая из аллеи лысогорского дома. – Она, жалкое невинное существо, остается на съедение выжившему из ума старику. Старик чувствует, что виноват, но не может изменить себя. Мальчик мой растет и радуется жизни, в которой он будет таким же, как и все, обманутым или обманывающим. Я еду в армию, зачем? – сам не знаю, и желаю встретить того человека, которого презираю, для того чтобы дать ему случай убить меня и посмеяться надо мной!И прежде были все те же условия жизни, но прежде они все вязались между собой, а теперь все рассыпалось. Одни бессмысленные явления, без всякой связи, одно за другим представлялись князю Андрею.


Князь Андрей приехал в главную квартиру армии в конце июня. Войска первой армии, той, при которой находился государь, были расположены в укрепленном лагере у Дриссы; войска второй армии отступали, стремясь соединиться с первой армией, от которой – как говорили – они были отрезаны большими силами французов. Все были недовольны общим ходом военных дел в русской армии; но об опасности нашествия в русские губернии никто и не думал, никто и не предполагал, чтобы война могла быть перенесена далее западных польских губерний.
Князь Андрей нашел Барклая де Толли, к которому он был назначен, на берегу Дриссы. Так как не было ни одного большого села или местечка в окрестностях лагеря, то все огромное количество генералов и придворных, бывших при армии, располагалось в окружности десяти верст по лучшим домам деревень, по сю и по ту сторону реки. Барклай де Толли стоял в четырех верстах от государя. Он сухо и холодно принял Болконского и сказал своим немецким выговором, что он доложит о нем государю для определения ему назначения, а покамест просит его состоять при его штабе. Анатоля Курагина, которого князь Андрей надеялся найти в армии, не было здесь: он был в Петербурге, и это известие было приятно Болконскому. Интерес центра производящейся огромной войны занял князя Андрея, и он рад был на некоторое время освободиться от раздражения, которое производила в нем мысль о Курагине. В продолжение первых четырех дней, во время которых он не был никуда требуем, князь Андрей объездил весь укрепленный лагерь и с помощью своих знаний и разговоров с сведущими людьми старался составить себе о нем определенное понятие. Но вопрос о том, выгоден или невыгоден этот лагерь, остался нерешенным для князя Андрея. Он уже успел вывести из своего военного опыта то убеждение, что в военном деле ничего не значат самые глубокомысленно обдуманные планы (как он видел это в Аустерлицком походе), что все зависит от того, как отвечают на неожиданные и не могущие быть предвиденными действия неприятеля, что все зависит от того, как и кем ведется все дело. Для того чтобы уяснить себе этот последний вопрос, князь Андрей, пользуясь своим положением и знакомствами, старался вникнуть в характер управления армией, лиц и партий, участвовавших в оном, и вывел для себя следующее понятие о положении дел.
Когда еще государь был в Вильне, армия была разделена натрое: 1 я армия находилась под начальством Барклая де Толли, 2 я под начальством Багратиона, 3 я под начальством Тормасова. Государь находился при первой армии, но не в качестве главнокомандующего. В приказе не было сказано, что государь будет командовать, сказано только, что государь будет при армии. Кроме того, при государе лично не было штаба главнокомандующего, а был штаб императорской главной квартиры. При нем был начальник императорского штаба генерал квартирмейстер князь Волконский, генералы, флигель адъютанты, дипломатические чиновники и большое количество иностранцев, но не было штаба армии. Кроме того, без должности при государе находились: Аракчеев – бывший военный министр, граф Бенигсен – по чину старший из генералов, великий князь цесаревич Константин Павлович, граф Румянцев – канцлер, Штейн – бывший прусский министр, Армфельд – шведский генерал, Пфуль – главный составитель плана кампании, генерал адъютант Паулучи – сардинский выходец, Вольцоген и многие другие. Хотя эти лица и находились без военных должностей при армии, но по своему положению имели влияние, и часто корпусный начальник и даже главнокомандующий не знал, в качестве чего спрашивает или советует то или другое Бенигсен, или великий князь, или Аракчеев, или князь Волконский, и не знал, от его ли лица или от государя истекает такое то приказание в форме совета и нужно или не нужно исполнять его. Но это была внешняя обстановка, существенный же смысл присутствия государя и всех этих лиц, с придворной точки (а в присутствии государя все делаются придворными), всем был ясен. Он был следующий: государь не принимал на себя звания главнокомандующего, но распоряжался всеми армиями; люди, окружавшие его, были его помощники. Аракчеев был верный исполнитель блюститель порядка и телохранитель государя; Бенигсен был помещик Виленской губернии, который как будто делал les honneurs [был занят делом приема государя] края, а в сущности был хороший генерал, полезный для совета и для того, чтобы иметь его всегда наготове на смену Барклая. Великий князь был тут потому, что это было ему угодно. Бывший министр Штейн был тут потому, что он был полезен для совета, и потому, что император Александр высоко ценил его личные качества. Армфельд был злой ненавистник Наполеона и генерал, уверенный в себе, что имело всегда влияние на Александра. Паулучи был тут потому, что он был смел и решителен в речах, Генерал адъютанты были тут потому, что они везде были, где государь, и, наконец, – главное – Пфуль был тут потому, что он, составив план войны против Наполеона и заставив Александра поверить в целесообразность этого плана, руководил всем делом войны. При Пфуле был Вольцоген, передававший мысли Пфуля в более доступной форме, чем сам Пфуль, резкий, самоуверенный до презрения ко всему, кабинетный теоретик.