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

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

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

Continue reading

Ошибка в настройке sfDoctrineGuard – remember_me фильтр

Давно не работал sfGuard, и вот возникла такая необходимость. Поскольку используется Doctrine, поставил sfDoctrineGuard. Пробежался по мануалу, настроил myUser, доступные модули, пересобрал модель. Все как сказано в документации. Однако, после подключения фильтра remember_me, начались чудеса. Фронтэнд начал падать с ошибкой

500 | Internal Server Error | sfException
Call to undefined method myUser::isAnonymous

Метод в наличии есть, myUser наследуется от sfGuardSecurityUser. Все на месте. И тем не менее.

Ларчик конечно открывался довольно просто:

Continue reading

Оптимизация работы с Doctrine при помощи специализированных запросов

Если вы работаете над большим проектом на symfony + Doctrine и у вас много моделей и сложных запросов, вам обязательно потребуется способ, как хранить и использовать эти запросы, не теряя преимуществ ООП и более прямым способом, нежели традиционные способы addNamedQuery() и createNamedQuery(). Ниже приводится такой способ.

Continue reading

Устанавливаем eAccelerator для php5 в windows

Так уж повелось, что разработку я веду на локальной windows-машине с использованием denwer. С каждым апгрейдом комп становился мощнее и php для девелоперских нужд работал вполне удовлетворительно. Однако, с переходом на symfony 1.4 с ужасом обнаружил, что генерация страницы в development-окружении составило более 1500 ms. Понятно, что dev environment предназначена для отладки, но все-равно не айс. Ниже мы поставим eAccelerator на локальный denwer.

Continue reading

The symfony 2009 Advent Calendar: день 3 – продвинутая маршрутизация (часть 2)

Symfony 2009 advent calendar – это 24 урока продвинутого уровня о symfony. Все уроки представлены на 5 языках: английском, французском, испанском, итальянском, японском. Русского нет, это досадное упущение постараюсь исправить.

Перевод статьи Symfony 2009 Advent Calendar: Advanced Routing (part 2).

Continue reading

The symfony 2009 Advent Calendar: день 2 – продвинутая маршрутизация (часть 1)

Symfony 2009 advent calendar – это 24 урока продвинутого уровня о symfony. Все уроки представлены на 5 языках: английском, французском, испанском, итальянском, японском. Русского нет, это досадное упущение постараюсь исправить.

Перевод статьи Symfony 2009 Advent Calendar: Advanced Routing (part 1).

Continue reading

The symfony 2009 Advent Calendar: введение/Introduction

Symfony 2009 advent calendar – это 24 урока продвинутого уровня о symfony. Все уроки представлены на 5 языках: английском, французском, испанском, итальянском, японском. Русского нет, это досадное упущение постараюсь исправить.

Перевод введения к новой книге (или циклу статей если вам угодно) от идеолога и родоначальника symfony, Fabien Potencier, The symfony 2009 Advent Calendar: Introduction).

Continue reading

Symfony 2009 advent calendar: день 19 – Разработка для Facebook (часть 2)

Symfony 2009 advent calendar – это 24 урока продвинутого уровня о symfony. Все уроки представлены на 5 языках: английском, французском, испанском, итальянском, японском. Русского нет, это досадное упущение постараюсь исправить.

Перевод статьи Symfony 2009 Advent Calendar: Developing for Facebook (part 2).

Continue reading

Инвайт-диалог стандартными средствами facebook

Для facebook приложений есть много полезных виральных фич, которые позволяют быстро наращивать пользовательскую базу вашего приложения. Одной из таких фич является форма приглашения друзей (invite). Изначально она формируется при помощи FBML тагов и выглядит вполне себе круто и функционально. Но у данной формы есть один недостаток – для того чтобы перейти к ней, пользователь должен уйти с основной странички приложения (особенно если это flash/flex приложение, при возврате придется его перезагрузить, переинициализировать и т.п.).

Ниже приводится простой способ отобразить диалог с формой инвайта, который не будет обновлять страницу при сабмите или отказе от него.

Continue reading