У меня есть веб-сайт Symfony, который можно просматривать в двух разных контекстах.Я имею в виду контексты, а не приложения (я использую ysfDimensionsPlugin ).В первом контексте я аутентифицирую пользователей, используя sfGuard, связанный с базой данных db1;во втором контексте я аутентифицирую пользователей, используя sfGuard, но привязанный к базе данных db2.
Эти 2 соединения определены в database.yml как стандартные объекты sfDoctrineDatabase.В schema.yml я связываю компоненты sfGuard с соединением db1.Итак, в моих базовых классах sfGuard у меня есть следующее:
Doctrine_Manager::getInstance()->bindComponent('sfGuardUser', 'db1');
Я пытаюсь динамически привязать компоненты sfGuard к соединению db2, если я нахожусь во втором контексте.Поэтому в глобальном методе preExecute я делаю это:
Doctrine_Manager::getInstance()->bindComponent('sfGuardUser', 'db2');
Doctrine_Manager::getInstance()->bindComponent('sfGuardGroup', 'db2');
Привязка выполнена, но она немедленно перезаписывается при выполнении запроса: sfAutoload загружает классы sfGuard, включая базовые классы, вызывая это:
Doctrine_Manager::getInstance()->bindComponent('sfGuardUser', 'db1');
Поэтому я спрашиваю: как бы вы реализовали это, чтобы решить это?