Symfony 2 Security: продолжает перезагружать данные у поставщика услуг?
Когда пользователь уже выполнил вход в систему, компонент безопасности продолжает перезагружать данные у поставщика услуг на каждом повторном уровне. Есть ли способ избежать этого? Если ваш провайдер не находится в локальной базе данных, например, в веб-сервисе, это может значительно замедлить работу системы.
По каждому запросу я получаю следующее:
[2012-08-15 20:07:30] security.DEBUG: Read SecurityContext from the session [] []
[2012-08-15 20:07:30] security.DEBUG: Reloading user from user provider. [] []
Ответы
Ответ 1
Вы можете решить, не обновлять ли ваш пользователь для каждого запроса в зависимости от ваших потребностей, переопределяя метод refreshUser
реализации UserProviderInterface
, на который вы полагаетесь, из определенного контекста безопасности.
Обратитесь к следующей документации API:
UserProviderInterface.html#method_refreshUser
Реализация должна решить, должны ли пользовательские данные полностью перезагружается (например, из базы данных) или если UserInterface объект можно просто объединить в некоторый внутренний массив пользователей/идентификатор карта.