Магические числа и таблицы-справочники в Doctrine/Propel

Кросспост моего хабратопика.

Коль скоро у вас в проекте используется база данных, то вам рано или поздно потребуются справочные таблицы. Такие таблицы я бы условно разбил на три категории:

  1. Небольшие справочники, до 10, реже 20 записей. Например – таблица статусов чего-нибудь (active|inactive|deleted как минимум).
  2. Средние справочники – от 20 до нескольких сотен записей. Например, таблица типов или категорий чего-либо.
  3. Большие справочники – от нескольких сотен до сотен тысяч записей. Например список городов и улиц России.

Справочники, как правило, заполняются разово при создании и крайне редко пополняются. Но тем не менее, пополнение возможно и наиболее вероятно для третьего типа, менее для второго и редко для первого.

Собственно зачем я это пишу:

Read More »

Posted in Профессиональное | Tagged , , , , | Leave a comment

О «symfony best practices»

Кросспост моего хабратопика.

Nicolas Perriault представлял на SymfonyDay’09 презентацию “30 Symfony Best Practices”. Кое-что из его практик очевидно (было мне известно), кое-что не было. Но есть две практики, которые мне совершенно не видятся как “best”. О них я и хочу поговорить.

Итак:

Read More »

Posted in Профессиональное | Tagged , , | 2 Comments

Вывод неэкранированных (unescaped) данных в symfony 1.3/1.4

Коль скоро в symfony 1.3/1.4 по умолчанию включено экранирование (escaping) всех выводимых данных, вам рано или поздно понадобится вывести что-либо в неэкранированном виде. Судя по постоянным вопросам в коммьюнити, не все могут найти документацию по этому вопросу, поэтому публикую эту небольшую заметку.

Read More »

Posted in Профессиональное | Tagged , , , | 2 Comments

Symfony 2.0 – быстрый тур – общая картинка (часть 1)

Вы хотите попробовать новинку в области web-разработки - symfony 2.0, но имеете на это 10 минуток или что-то около того? Этот курс молодого бойца написан специально для вас. Он рассказывает о том как быстро начать работать с symfony 2.0 и показывает структуру простого проектика.

Если вы когда-нибудь использовать веб-фреймворк прежде, вы должны чувствовать себя как дома в symfony 2.0.

Read More »

Posted in Профессиональное | Tagged , , , , , , | Leave a comment

Doctrine + memcached: использование и тестирование

Doctrine ORM имеет встроенный кэш-менеджер, который умеет кэшировать в

  • Memcached
  • APC
  • DataBase (видимо имеется в виду некая плоская БД с быстрым доступом, типа SQLite)

Узнав сей факт решил воспользоваться встроенным механизмом и протестировать механизм кэширования.

Read More »

Posted in Профессиональное | Tagged , , , , , | Leave a comment

Моя текущая подборка плагинов для wordpress

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

Сначала будут перечислены общеупотребительные плагины, потом специфичные для того или иного блога.

Поехали?

Read More »

Posted in Личное, Профессиональное | Tagged , | Leave a comment

Разворачиваем symfony в document root

Не все web-проекты в этом мире – это крупные и высоко нагруженные системы. Есть также огромное число мелких и средних проектов. Давайте немного взглянем на последние. То что они небольшие и типовые – не значит что для них нельзя использовать symfony. Даже нужно, если у вас на поддержке 20 штук таких – будет проще обслуживать.

Итак, имеем маленький/средний сайтик на symfony. Здорово, но на нашем хостинге мы имеем доступ только в document root сервера! Это не беда, symfony достаточно гибок для того чтобы развернуть его в таких условиях. Ниже я приведу два способа.

Read More »

Posted in Профессиональное | Tagged , , , , | Leave a comment

Асинхронный пул на jQuery

Приведенный ниже скрипт имеет скорее теоретический нежели практический интерес.

Итак, постановка задачи:

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

Алгоритм решения:

  • Получить JSON с данными для последующей обработки.
  • Для каждого элемента в полученных данных:
  • – Если пул не заполнен – запустить асинхронный процесс.
  • – Если пул заполнен – ждать пока в пуле освободится слот.
  • По окончанию обработки данных очистить пул.

Проблема:

  • Если организовывать опрос пула циклически, съедается 100% одного ядра CPU, начинает дико тормозить интернет-обозреватель и в конце концов может аварийно завершить работу.

Как можно реализовать скрипт для данной задачи – смотрите ниже:

Read More »

Posted in Профессиональное | Tagged , , , , , | Leave a comment

Разгоняем dev-окружение в symfony 1.4.1

Симптомы:

В dev-окружении генерация страницы занимает 5-10 секунд. При этом в prod-окружении все в общем-то хорошо. Под удар точно попадают symfony 1.4.1 и 1.3.1, но, возможно, и более ранние версии.

Диагноз:

Read More »

Posted in Профессиональное | Tagged , | Leave a comment

php_memcache.dll для PHP 5.3 (windows)

Одной строкой: php_memcache.dll для PHP 5.3 (windows) можно взять здесь: http://downloads.php.net/pierre/php%5Fmemcache-cvs-20090703-5.3-VC6-x86.zip

Posted in Профессиональное | Tagged , , , , | Leave a comment
Get Adobe Flash playerPlugin by wpburn.com wordpress themes