symfony

Все записи с тегом «symfony»
22
05/2010

Symfony Camp UA 2010

Всем, у кого есть желание и возможность побывать на конференции разработчиков Symfony, добро пожаловать на Symfony CAMP UA 2010.

Конференция пройдет 3 июля 2010 года, участие бесплатное. Буду освещаться тенденции развития фреймворка, актуальные проблемы разработки и многое другое.

Также приглашаются люди, которые будут помогать в закулисных делах конференции. Если у вас есть желание помочь, при регистрации в комментариях к заявке укажите «хочу в help team».

07
11/2009

Коррекция адреса веб-страницы

Бывает, мы делаем ошибки при наборе адреса страницы. Классика жанра. Как результат, мы видим 404 страницу. Вчера я попробовал сделать обработчик таких ситуаций, который ищет похожий адрес и при обнаружении такого, переадресовывает на него.

На самом деле задача решается очень просто. Достаточно обратиться к расстоянию Левенштейна — понятию, обозначающему разницу двух строк в виде количества операций вставки, удаления и замены, необходимых для перевода одной строки в другую.

Если говорить о конкретных реализациях, то есть несколько готовых способов определения расстояния Левенштейна.

Существуют готовые функции levenshtein в PHP и PostgreSQL, у которых присутствует ограничение на длину сравниваемых строк в 255 символов. Для MySQL и Oracle я обнаружил только хранимые процедуры, которые рассчитывают данное расстояние.

Данную фичу я добавил на этом блоге. Для демонстрации ее работы возьмем адрес:

http://blog.salikhovilyas.ru/2009/06/07/did-you-know/

При вводе более-менее похожего адреса, система сразу перенапраляет на правильный:

http://blog.salikhovilyas.ru/2009/06/07/didyouknow/

Если адрес отличается достаточно сильно, то система выдает 404 страницу, а также предлагает наиболее похожие адреса:

http://blog.salikhovilyas.ru/2009/06/7/didknow/

Аналогичную логику я добавил в небольшую symfony based cms, которую мы используем в своих проектах.

Если говорить о популярных на данный момент CMS, аналогичный функционал я заметил только в umi.cms, в остальных системах ничего подобного я не нашел.

01
02/2009

О плагинах Symfony

Выложил новую версию sfStatisticsPlugin, в которой исправлен лишь один баг, если его можно так назвать: функция, которая формирует имена классов модели в формате полного СamelCase (user_interest —> UserInterest), переводит первый символ всех слов, включая первый, в верхний регистр, что и делают генераторы модели ORM. Но разработчики SensioLabs решили отличиться, и в своих плагинах во всех названиях классов модели используют префикс sf, что я и не учел ранее.

Плагин можно скачать там же, где и раньше.

Про то, как мне сообщили про этот баг, была мини-история. Через Пашу Форкерта ко мне в аську постучался человек по имени Саша с данной проблемой. Решив ее и немного пообщавшись, выяснилось, что он тоже из МИФИ, а плагин использует в своем дипломном проекте :)

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

26
12/2008

Организуем релевантный поиск по разнородным данным с помощью Sphinx

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

Постановка задачи

В проекте есть на данный момент 2 зоны:

  1. географическая зона, реализованная на базе Google Maps, которая отображает нанесенные пользователями на карту географические объекты (маркеры, маршруты и области);
  2. информационная зона, которая представляет собой большой иерархически организованный каталог, содержащий информационные материалы.

Необходимо было решить задачу одновременного текстового поиска по 3-м типам объектов: географическим объектам, категориям информационной зоны и материалам информационной зоны — c возможностью фильтрации по дате публикации объектов и категориям, к которым они относятся.

читать далее...

18
10/2008

Глобализация в разработке

Стоило мне выложить плагин ведения статистики sfStatisticsPlugin на Symfony Project, как его начали активно использовать разработчики буквально со всей планеты, а к процессу развития плагина подключились ребята из США, Германии и даже из Румынии! В такие моменты начинаешь ощущать, что сделал что-то действительно полезное.

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

08
09/2008

Новый плагин ведения статистики sfStatisticsPlugin

Предлагаю всем желающим попробовать новый плагин sfStatisticsPlugin для Symfony. Данный плагин позволяет быстро строить наборы различных отчетов на базе модели Propel. Графики в отчетах строятся с помощью Google Chart API.

Из возможностей хочется выделить следующее:

  1. Возможность группировки данных по дате и по значению;
  2. Три вида графиков: линейный, круговая и столбцовая диаграмма;
  3. Настройка уровня апроксимации данных (значения с малой долей группируются в поле "Другие");
  4. Возможность настройки внешнего вида графика (фоновый цвет, размер, длина надписей);
  5. Полная поддержка i18n (на данный момент есть английский и русский перевод).

читать далее...

_