Рейтинг
+5.66
голосов:
5
avatar

Yii  

Agile Web Application Development with Yii1.1 and PHP5

Agile Web Application Development with Yii1.1 and PHP5
Появилась первая книга по замечательному PHP-фреймворку Yii.

В качестве примера, в книге рассматривается создание приложения для управления задачами.
Описывается идеология разработки через тестирование (TDD).

Судя по описанию, книга затрагивает все возможности фреймворка:

— атоматическое создание CRUD-интерфейса
— интернационализация приложения
— использование ORM
— авторизация и аутентификация пользователей
— интеграция сторонних библиотек и фреймворков

И еще много всего интересного!

официальный сайт

Yii 1.1.3

Yii Framework
Вышел релиз 1.1.3 Yii Framework

Исправлено 20 ошибок и добавлено около 50 новых фич и улучшений.

хороший обзор на хабре спасибо rosko!
change log
скачать

YRequiredValidator со свойством allowEmpty

Большинство валидаторов в Yii имеют свойство allowEmpty, которое означает условие когда проверяемый атрибут может быть пустым. Исключением из этого большинства является CRequiredValidator, у которого данного свойства нет. Вообще это логично, так как этот валидатор необходим, чтобы проверить обязательное присутствие значения, однако возникают ситуации когда обязательность того или иного атрибута зависит от внешних настроек. Я взял стандартный класс CRequiredValidator и добавил всего несколько строк кода, для реализации необходимого мне поведения.

Теперь я могу писать вот так (отрывок метода rules()):
....
array('verifyCode','YRequiredValidator','allowEmpty' => !Yii::app()->controller->module->showCaptcha),
....


Может данная возможность еще кому-нибудь пригодится.

скачать
исходный код

YMarkItUpWidget - виджет для Yii, подключающий редактор MarkItUp

В одном из проектов необходимо было использовать простенький висивиг-редактор. Мой выбор пал на markitup.jaysalvat.com/home/ — редактор, использующий jQuery. Для подключения редактора был написан совсем маленький виджет, который позволяет легко и просто из любого элемента типа textarea сделать тот самый висивиг-редактор.

Пример использования (отрывок кода из файла представления (view)):
<?php $this->widget('YMarkItUp',array('domId'=>'Page_body'));?>


Результат будет примерно следующим:

YMarkItUpWidget - простой виджет для фреймворка Yii

Единственным обязательным параметром является domId, он должен содержать id элемента textarea, который мы хотим превратить в висивиг-редактор. В данном примере параметр принимает значение Page_body.

Остальные параметры описаны на страничке с краткой документацией.

Исходный код
Загрузить YMarkItUpWidget
Краткая документация
  • +1
  • 14 июня 2010, 16:40
  • xoma
  • 2

Мои размышления на тему модулей в Yii и модульности вообще

Разрабатывая любое приложение, разработчик старается сделать его как можно более масштабируемым, легко поддерживаемым и расширяемым. Частично эти задачи решает Модульность.

Для начала стоит определиться что же такое модуль в терминах Yii. Как гласит официальная документация, Модульэто самодостаточная программная единица, состоящая из моделей, представлений, контроллеров и иных компонентов. Основная особенность модулей состоит в том, что их можно использовать в совершенно разных проектах, т.е. написав и отладив модуль один раз — его можно будет использовать и в других проектах… Но это все в теории. На практике же очень часто функциональность модуля зависит от основного приложения или же от других модулей. Например, допустим, мы пишем модуль «Форум» и хотим сделать его автономным и независимым от остального приложения. Тут возникает несколько проблем

( Читать дальше )
  • 0
  • 07 июня 2010, 14:35
  • xoma
  • 11

Диаграмма классов Yii

Caveman — один из активных участников сообщества на www.yiiframework.ru/ «наколдовал» диаграмму классов для фреймворка Yii версии 1.1.2.

Пользуемся!

диаграмма классов (3.7 МБ)
тема на форуме

Yii Yandex JS API - класс-хелпер для работы с хостингом JS-библиотек от Яндекс

В документации по фреймворку Yii есть раздел, в котором описывается несколько способов увеличения производительности Yii-приложений. Одним из способов является подключение JavaScript-библиотек и фреймворков не с ваших собственных серверов, а с так называемых, CDN-серверов. Это позволяет значительно увеличить скорость загрузки веб-страниц и снизить нагрузку на собственные сервера. В состав Yii уже входит компонент CGoogleApi, который позволяет загружать JavaScript библиотеки с CDN-серверов Google. Относительно недавно у Яндекса появился свой хостинг JavaScript-библиотек, для работы с которым и был разработан этот небольшой класс-хелпер.

Краткая документация и примеры
Загрузить класс YandexJsApi

Полезные ссылки:
Проект Яндекса «Хостинг JavaScript-библиотек»
Клуб Хостинг JavaScript-библиотек

Рекомендую к прочтению, следующие книги по клиентской оптимизации:
«Разгони свой сайт»
«Реактивные веб-сайты»

Yii Social Components

В одном из проектов (проект на Yii) возникла необходимость размещать в материалах сайта кнопки для публикации контента в различных социальных сервисах, таких как ВКонтакте, Mail.ru, FaceBook, Twitter и некоторых других. В результате на свет появился набор виждетов, которые и выводили все эти кнопочки. После того как эти маленькие классики были готовы, возникла идея объединить их в набор, так называемых, «Социальных компонентов для фреймворка Yii» — вот так на свет и появился Yii Social Components(YSC).
На данный момент в этот набор входит 5 виджетов для отрисовки кнопок, предназначенных для публикации контента в различных сервисах:
— FaceBook
— Twitter
— Google buzz
— Mail.ru
— Vkontakte
В дальнейшем планирую добавить виджеты для других социальных сервисов, кроме того, все таки хочу найти время и доточить свой классик для авторизации по OpenID.

Имеется кратенькая документация для этих виджетов code.google.com/p/xomaprojects/wiki/YiiSocialComponents, котороя по мере появления новых компонентов будет обновляться.

скачать YSC

p.s. Эти 5 виджетов выводят кнопки примерно такие, как можно видеть в этой статье (и на этом блоге), но, так как движок данного блога не на Yii, то я их вывел простой вставкой js-кода.
  • +1
  • 14 мая 2010, 12:08
  • xoma
  • 3

Yii и авторизация по OpenID.

При разработке одного из проектов, возникла задача дать возможность пользователю авторизоваться по OpenID. Так как проект писался на Yii, то я начал поиски компонента для этого фреймворка, который помог бы мне с этой задачей. Был задан вопрос на форуме ответа так и не последовало =(.
Было принято решение написать такой компонент (или что-то подобное) самому. Изначально я не планировал разбираться во всех тонкостях протокола OpenID, а потому решил просто написать обертку (врапер) для одной из существующих библиотек. В качестве такой библиотеки была выбрана вот эта openidenabled.com/php-openid/.
Возможно как раз из-за нехватки знаний о каких-то специфических тонкостях протокола и его реализации в этой библиотеке, привело к тому, что, полученный врапер работал (и сейчас работает) не совсем корректно. О том, что именно не так расскажу чуть позже.

После некоторого времени разработки я получил вот такой вот классик-оболочку, который очень легко и удобно (на мой взгляд) использовать.


( Читать дальше )
  • 0
  • 25 марта 2010, 14:00
  • xoma
  • 1

Yii 1.1.1 и 1.0.12

После достаточно продолжительной разработки, было выпущено сразу две версии Yii — 1.1.1 и 1.0.12.
В Yii 1.1.1 исправлено около 20 ошибок, а так же внесены значительные изменения в некоторые компоненты фреймворка:
— виджет CActiveForm позволяет разработчикам легко конструировать HTML-формы с валидацией как на стороне сервера, так и на клиентской стороне, при этом правила валидации пишутся один раз;
— виджет CGridView теперь поддерживает фильтры;
— новый генератор кода (yiic) теперь генерирует код, позволяющий осуществлять фильтрацию и поиск;

Yii 1.0.12 — это баг-фикс релиз ветки 1.0.x, в этом релизе исправлены незначительные ошибки и добавлено несколько новых возможностей. Обновление с предыдущей версии ветки 1.0.x должно пройти без проблем.

change log впечатляет — нового функционала очень много — это радует!