Статьи и новости

Статьи и новости о веб-разработке

Разработка компонента для MODX Revolution

Разработка компонента для MODX Revolution

В январе мы завершили разработку компонента для MODX Revolution 2.7.0-pl, предназначенного для управления и ротации рекламных баннеров .

Отправной точкой для разработки стал пакет BannerY, которым давно пользовались наши клиенты, но он перестал отвечать их растущим требованиям.

В разработанном нами компоненте, появилась возможность создавать рекламные кампании, привязывать к ним любое количество баннеров и задавать для них рекламные позиции.

 

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

При деактивации рекламной кампании выключаются показы и всех привязанных к ней баннеров.
Так же, мы предусмотрели возможность менять очередность (приоритет) показа кампаний.
Переход по каждому баннеру учитывается отдельно, а в кампанию выводится их общее количество.

 

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

Дело в том, что статистика показов и переходов привязана и должна храниться в пользовательских сессиях, а это довольно затратная операция.
Массив кампаний, баннеров и позиций, к которым они привязаны, тоже нужно где-то хранить и отдавать посетителю максимально быстро.
Учитывая то, что посещаемость сайта, для которого разрабатывался пакет, составляет более 5000 посетителей в сутки, стандартные методы хранения сессий в базе данных или в файлах могли вызвать проблемы со временем отклика сервера. Поэтому, пользовательские сессии тоже хранятся в Redis.
В результате, количество запросов к базе, при формировании ответа сервера не увеличилось, а время отклика сервера, за счет использования Redis, даже сократилось.