Symfony. Propel.

Поправьте меня, если я не прав. А я очень хочу неправым оказаться.

Но разработчики symfony сделали нереальную хуйню.

public static function doSelectRS(Criteria $criteria, $con = null)
{
foreach (sfMixer::getCallables('BaseUsrPeer:doSelectRS:doSelectRS') as $callable)
{
call_user_func($callable, 'BaseUsrPeer', $criteria, $con);
}

// more code

return BasePeer::doSelect($criteria, $con);
}

В оригинале — это возможность вешать хуки на функции propel (то есть на работу с базой данных).

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

Сижу вот, думаю, как глобально теперь все эти функции похукать. Конечно, BaseUsrPeer генерится — внести в sfPropelPlugin изменения дело 10 минут. Да и можно просто похукать всё в самом плагине. Но я пока не уверен, что это хорошая идея.
Но идея править 160 файлов в lib/model мне тоже не нравится. Это быстрее, чем придумать нормальный вариант, но это усложнит поддержку. Я уже и так планирую похерить текущую систему кеширования, которая как раз вручную во всех 160 файлах прописана, как не отвечающую требованиям задачи (кеширует далеко не всё. А дописывать её — это каждый раз при возможных изменениях все 160 файлов править).

Можно чего-нибудь сказануть.