Yii

индекс
14,80

Тонкости настройки Yii под высокие нагрузки

Yii*, PHP*
Здравствуй, Хабр.

После анонса своего проекта на Хабре, группа трудящихся в комментариях изъявила желание узнать более подробно, о технологиях используемых в проекте и тонкостях настроек. Как я писал ранее в проекте используется Yii фреймворк, о настройках которого и поговорим.

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

+33
23 мая 2012, 03:03
255
Solovej 37,1

Реализация шаблона Identity Map в Yii Framework из песочницы

PHP*, Yii*
Доброго времени суток, хабрасообщество!

Проблема


При работе с базой данных или просто с объектами, доступными из разных частей вашего приложения, есть опасность, что объекты, которые, казалось бы, должны быть равны вовсе таковыми не являются.

Например, допустим, у нас есть некоторая модель ActiveRecord — Expence и вот такой код:
$modelOne = Expence::model()->findByPk(10);
$modelTwo = Expence::model()->findByPk(10);
var_dump($modelOne === $modelTwo); // Вернет false

Таким образом, меняя одну модель мы никоим образом не затронем вторую(что логично, так как они ссылаются на разные объекты).
$modelOne->someField = "Data";
$modelOne->save();
/// ...какой-то код...
echo $modelTwo->someField; // Содержит старое значение
$modelTwo->save(); // Затираем ранее записаные данные

+24
9 мая 2012, 12:26
82
organium 6,0

YiiConf 2012, открыта финальная регистрация

Yii*
image

Открыта финальная регистрация на первую ежегодную профессиональную конференцию YiiConf.

  • Дата проведения конференции: 19 мая
  • Стоимость участия: $50, 1500р. или 400 гривен
  • Количество мест: 200
  • Место проведения: ул. Михайловская, 1/3 (Площадь Независимости) г. Киев, 01001, Украина


+16
10 апреля 2012, 13:00
8
SamDark 98,3

Дискретные проекты Yii на основе общего ядра


Добрый вечер всем хабраюзерам!

Хочу поделиться определёнными идеями и соображениями на тему создания обособленных проектов в Yii на основе одного общего ядра.

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

Изначально, что называется, «из коробки», Yii уже поставляется отдельными папками с самим ядром и несколькими демо-проектами на нём, но мне этого было мало, поскольку требовались несколько другие возможности по управлению и контролю за проектами, на основе чего и были созданы те идеи, которые я хочу изложить.

+9
8 апреля 2012, 23:52
86
Melorian 8,9

KCAPTCHA для Yii

Yii*
Первая проблема которая у меня встала при работе Yii — отсутствие нормальной каптчи. Дефолтная каптча меня не устроила ряду причин:
  • постонянно глючила (просто нажимая F5 иногда она отображалась нормально, иногда отображалась пустая картинка, иногда каринка с одиним первым симоволом);
  • сам агоритм мне показался слишком простым (+ используется всего один шрифт);
  • не обновлялся код на картинке при перезагрузки страницы.

Прогуглив, я понял, что с подобными проблемами сталкиваюсь не я один. А вариант с рекаптчей тоже «не вариант» — её было невозможно вписать в нужный мне дизайн (либо я просто плохо в ней разобрался).

Т.к. в своих проектах я обычно использую каптчу «KCAPTCHA» (http://captcha.ru/kcaptcha/), то решил совместить существующую каптчу из Yii и «KCAPTCHA». И вот, что у меня, получилось — glavweb.ru/public/download/kcaptcha.zip
+2
31 марта 2012, 13:07
32
Nilov_A 1,0

Как подружить Yii (ActiveDataProvider) и Text Search в PostgreSQL из песочницы

Yii*

Использование PostgreSQL tsearch2 в проекте на Yii


Любой сайт — это прежде всего тексты. Для того, чтобы тексты было удобно редактировать их часто хранят в БД. При этом появляются дополнительные возможности, такие как удобный поиск по содержимому текстового поля. Старый добрый LIKE хорош, но не всегда. Есть более продвинутые вещи, такие как tsearch2 в PostgreSQL. Как им воспользоваться в Yii Framework я расскажу под катом.
+3
28 марта 2012, 19:06
14
ischerbin 100,6

Кеширование в Yii с помощью тегов из песочницы

Yii*
Yii позволяет кешировать данные в виде массива возвращаемые прямиком из базы данных.
А у системы кеширования есть разные зависимости. Вот только ни одна из этих зависимостей не позволяет автоматически отслеживать изменения в таблице без обращения к ней же (имею ввиду CDbCacheDependency), что в нагруженных системах бессмысленно.

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

+20
21 марта 2012, 13:23
125
AstRonin 3,0

Валидация в Yii

Yii*
Доброго времени суток. Сегодня мне хотелось бы разобрать такую интересную возможность Yii Framework, как валидация данных моделей. На момент написания статьи актуальная версия фреймворка 1.1.10, собственно рассматривать валидацию на ней и будем.
Хочу сразу сказать, что мне не хочется перепечатывать мануалы и API, поэтому я по возможности буду ссылаться на готовые источники. Кроме того, я не буду описывать то, как пользоваться валидаторами. Я постараюсь раскрыть механизм валидации моделей Yii на основе правил валидации, чтобы используя их вы понимали что же на самом деле происходит и где в случае чего можно искать ошибки.
+15
20 марта 2012, 00:46
67
DexterHD 9,5

Lily — модуль для управления пользователями с авторизацией через различные сервисы

Yii*
Думаю, редкий человек, следящий за блоком Yii на хабре, не видел статью об экстеншене для авторизации через социальные сети EAuth. Сегодня я хочу представить в некотором роде продолжение этой темы, а именно модуль для управления пользователями, основанном на вышеупомянутом дополнении.
+21
18 марта 2012, 14:48
112
georgeee 6,0

Обновление грида через ajax

Yii*
Привет, хабрасообщество!

В этой теме я хочу обсудить наиболее правильное использование компонента CGridView в Yii.
Ниже я опишу 3 способа, которые вижу лично я, и буду рад услышать ваши идеи в комментариях.



Итак, задача:
Требуется страница с несколькими блоками, в одном из которых должна быть таблица (грид).
Нужна возможность сортировки и постраничной навигации грида через ajax.


Звучит несложно, не правда ли? Давайте посмотрим, что нам предлагает Yii.
+12
16 марта 2012, 14:53
96
vitalets 12,9