Yii Framework

PHP*
Случайно встретился ещё один PHP-фреймворк. Обычно новые фреймворки я просматриваю мельком, но этот меня очень заинтересовал.

Авторы (Qiang Xue, Xiang Wei Zhuo), возможно, известны вам по довольно гибкому, но и довольно тормознутому фреймворку Prado.

Итак, что же в нём такого интересного?

Производительность


Если верить цифрам, он быстрее CodeIgniter, CakePHP, ZF и Symfony. А при использовании APC — не просто быстрее, а быстрее более, чем в два раза. Тут конечно стоит учесть, что сравниваются только самые базовые вещи.

Архитектура и возможности


— Полностью объектно-ориентированный без единой глобальной переменной или функции.
— Компонентный MVC.
— DAO, Active Record.
— Валидация форм.
— Аутентификация, авторизация.
— Генерация WSDL и всесторонняя поддержка веб-сервисов.
— Интернационализация, локализация.
— Многоуровневая система кэширования (данные, страницы, части страниц). Поддержка различных хранилищ кэша в виде бэкэндов.
— Много всего для предотвращения XSS, CSRF и других атак.
— Весь код на выходе — XHTML.
— Консольные генераторы скелетного кода.
— Позволяет использовать любой другой код (Zend Framework, PEAR и др.)
— На клиенте используется jQuery.

Заимствования идей


— Prado: Ну, тут понятно. Всё-таки авторы те же… Из него взяты идеи: компонентная структура, событийное программирование, слой абстракции СУБД, модульность, интернационализация, локализация и др.
— Ruby on Rails: Convention over configuration (можно начать работать, а конфигурировать как понадобится). Где-то в комментариях к документации народ отзывается, что разобраться проще, чем с Rails. Также на RoR похож Active Record.
— Symfony: фильтры, плагины.
— Joomla: Модули, перевод строк.

Документация


Документация конечно не такая простая и небольшая, как в CodeIgniter, но очень и очень хороша. На русском нет ничего, но с документацией на английском всё очень хорошо:

Документация по API
The Definitive Guide to Yii (122 страницы подробно и с примерами).
Оффлайн-варианты

Третьего числа состоялся релиз стабильной версии 1.0.0. Распространяется по new BSD (можно использовать как для открытых, так и для закрытых приложений).

Пробуем
+47
9 декабря 2008, 17:51
77
SamDark 98,3

комментарии (60)

0
iTNitro #
Спасибо, отличная статья, ушёл смотреть :)
0
homm #
А есть какой нибудь список написанных на его основе сайтов?
+2
BisnoyZakat #
как бы это ОЧЕНЬ новый фреймворк
0
SamDark #
0
homm #
Чесно говоря, предыдущий ответ BisnoyZakat меня устроил КУДА больше вашего :)
0
jtraub #
Делал несколько попыток изучить QuickStart Guide этого фрэймворка. После документации CodeIgniter и Symfony читается с большим трудом
+1
WarGoth #
Интересно. Только как его по-русски называть-то? :)
+1
djsv #
The name Yii (pronounced as /i:/) stands for easy, efficient and extensible.
Отсюда
0
willwin #
юй:)
+2
GmasteR #
уйи :)
+3
kronos #
+5
proxor #
Ыыы-фреймворк :)
0
Bonch #
Уиии фреймворк)
+2
xiaose #
т.е. «pronounced as /i:/» это уже не «произносится как /и/», а «юй», «уйи», «игрэкайай» ну или что там ещё тупого можно придумать?
0
auth #
ну если по простому и по русски то просто «уй» 8)
+5
KF_NEXUS #
— тебе на чём проект сделали??
— на уй мне программист поставил сайт, сейчас тестируем как этот уй работает :)
+3
Temp1ar #
Скоро на собеседованиях будут спрашивать: «На уе писал что-нибудь?», «Уй использовал в работе?», «Знания уя на каком уровне?»
0
dfuse #
Ну я лично два варианта вижу — «ы» или «уй» :)))
–2
ArtemS #
Немного почитал доки, и сложилось впечатление что я где-то похожее уже видел.
Когда разработчики будут предлагать что-то революционно новое, а не копировать друг у друга идеи?
Я бы лично перешел на другой framework если бы он действительно чем то новым. Аргументы «работает быстрее» либо для меня ничего не значат. Кто хочет быстрее, пусть пишет на С.
Может настало время 2.0 фреймворков?

Вот пара идей:
  - веб-интерфейс по генерации скелета приложения 
       чтобы без консоли, консоль пусть будет для тех кто привык.
  - веб-интрефейс по конфигурированию
       чтобы не править файлы, а все с подсказками, и с возможными вариантами опций.
  - веб-интрефейс создания моделей
       вбил пару сток, а тут таблица в базе нарисловалась. Поменял связи - автоматически запустились alter'ы
  - веб-интрефейс по локализации
       показывался прогрес бар для файлов и прочие вкусности.
0
SamDark #
Drupal?
0
MpaK999 #
Посмотрите на Seagull seagullproject.org/
+4
Exabiche #
Вы, наверно, не уловили разницы между CMS и CMF.
0
ArtemS #
Тут не слова про ни про CMS, ни про СMF.
Идея в том, чтобы добавить frontend к фреймворку, для удобного управления.

Scaffolding модуль уже есть в некоторых продуктах, нужно лишь развивать идеи.
0
Exabiche #
Как по мне, добавление фронтенда к фрэймворку — отвратительная идея, к каждому проекту я делаю свой уникальный фронтенд на базе фреймворка.
0
Arekus #
в процессе.
+1
HeadFore #
А ещё лучше голосом в микрофон наговорил что хочется, и оп, готово!
+2
MpaK999 #
э, ну желание сделать всё как на руби-на-рельсах, хм, зачем? Есть же тот же РоР, а в PHP есть Symphony, CodeIgniter, CakePHP, Solar… К чему очередной фреймворк без особых удовольствий, кроме как некой скорости работы на синтетических тестах и в придачу 120 страниц очередного мануала :(

Документация действительно после CodeIgniter читается сложновато, куча статичных методов и т.п.
В целом не плохо и интересно, но для начала надо посмотреть как будет развиваться коммунити и документация.
Из, субъективного не люблю работать с фреймворками через консоль, в этом плане CI мне импонирует, тем что создаешь и контролируешь код сам.
0
SamDark #
Ну почему сразу RoR? Тут похожи на него только несколько идей: куча умолчаний в конфигурации (это и в CI есть), Active Record и консоль.

Вообще если на CI удобно, слазить с него смысла нет никакого.
0
MpaK999 #
Потому и не слазим, а просто заглядываемся на «соседей» :)
CI что-то тихо развивается, не хватает многих моментов, хотелось бы уж, чтобы как-то часть вкусностей быстрее вошла бы в 1.8
0
SamDark #
1.8 может и не быть ;)
0
MpaK999 #
э, почему же? есть ведь куда расти, я многим еще недоволен :)))) хочу модульность встроели нормальную, а не HMVC, мне больше WICK нравится, ORM хочу, миграции хочу хорошие, базовый класс генератора форм с автомоделью, класс Upload с подгрузкой через swf или ajax (iframe) и т.п. Есть еще, что расширять и ключать и исправлять там
0
SamDark #
Я про то, что есть все шансы, что будет сразу 2.0 вместе с новым Expression Engine.
0
MpaK999 #
уфф… камень с сердца :))
+4
balvardo #
/*Выглядывает из своего болота и размахивает флажком с надписью Kohana*/
0
SamDark #
Флажок неплохой, но документация хромает…
0
MpaK999 #
Флаг бы еще держало больше рук, было бы древко нормальное, больше организованности и было бы всё хорошо :)
–1
MastaEx #
Помогу держать флажок, пожалуй
0
ukko #
В очень CI раздражает его устаревший синтаксис для совместимости с php4, в этом плане yii выглядит на много привлекательней.
0
HeadFore #
А ещё лучше голосом в микрофон наговорил что хочется, и оп, готово!
0
HeadFore #
Не туда коммент…
0
MpaK999 #
эээ… это к чему бы?
0
Anarki #
А template inheritance есть? Я тут нашел в доке Layout, но уж слишком просто выглядит.
0
SamDark #
Как в Django вроде нет.
–14
Awful #
Фрамеворки — полный УГ!
Кто не верит — тот пиздюг!

© Awful
–1
insaner #
Недавно рассматривал кучу фреймворков для расширения своих знаний и перехода на новый уровень, могу сказать одно, пожалуй ci это лучшее в плане документации, библиотек, хелперов и тд, но это мое личное мнение, так как я новичок =)

Есть ли смысл ломать голову, перенастраивать еёголову) на какие то другие правила с целью изучения нового фреймворка? Ответьте пожалуйста у кого есть опыт в разаработке приложений с использованием фреймворков?
0
insaner #
Хотя господин Мрак999 почти ответил на мои вопросы.
+1
viv81ster #
CI хорош в плане изучения MVC, потом вы будете рости как программист, у вас будут запросы побольше ну по мере роста, вам захочется какие-то вещи автоматизировать (вроде написания простых запросов к БД), начнете писать примочки к своему CI потом выяснится, что до вас это все написано как и многое другое, вы начнете искать что-то другое, наткнетесь на Symfony или вообще перейдете на Django. Есть еще www.akelos.org но как то он замер в полете. За полтора года особо ничего не изменилось.

Конечно можно начать с хвоста. Но как же вся романтика путешествия, что вы потом будете рассказывать внукам?
0
ayavryk #
>Весь код на выходе — XHTML.
Этого не может быть, потому что такого не может быть никогда. Там где что-то делается человечком всегда будут ошибки.
А в остальном — желаю удачи бета-тестерам :)
0
deerua #
Нужно будет покопаться
Спасибо!
0
phpscript #
Интересно было бы почитать объективные отзывы «покопавшихся»
0
xRay #
Имхо хорошим примером является офсайт фреймворка надо только приделать ссылку для показа исходника странички по аналогии с тем как это сделано php.net
+1
xoma #
мой кратенький обзор можно прочитать тут andrey.opeykin.ru/yii-framework/
+2
silent9 #
вот что гугл думает
поиск: yii framework
«Возможно, вы имели в виду: ый framework»
0
brmn #
Вы меня, конечно, извините. Но сегодня посмотрел в сторону CodeIgniter…
Господа, а чего же у вас www.codeigniter.org.ru/ на Drupal сделан?
0
SamDark #
Не там смотрите… http://code-igniter.ru/
0
brmn #
что первым «нагуглилось», то и посмотрел.
ваш четвертый. читаю… ;)
0
sanchesfree #
тем временем доступен 1.0.1
0
xZenon #
Тем временем доступен и 1.0.2.
0
Karen #
Открылся первый русскоязычный сайт о Yii Framework
yii.devgroup.ru/tiki-view_articles.php
0
Karen #
Yii 1.0.4 is released
April 5, 2009

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.