2012-04-11 2 views
1

Я использую FOSUserBundle для управления пользователями, а сеансы сохраняются в базе данных благодаря PdoSessionStorage.Symfony2 & PdoSessionStorage: как добавить поля в таблицу сеансов базы данных?

Я хотел бы добавить поля в моей сессии таблице:

  • user_id: который является внешним ключом ссылки на идентификатор зарегистрированного пользователя
  • IP: IP-адрес пользователя, вошедшего в
  • END_TIME : время, когда пользователь вошел в систему из

Вот мое приложение/Config/config.yml файл:

framework: 
    session: 
     default_locale: %locale% 
     auto_start: true 
     lifetime: 72000 
     storage_id: session.storage.pdo 

parameters: 
    pdo.db_options: 
     db_table: session 
     db_id_col: session_id 
     db_data_col: value 
     db_time_col: time 

services: 
    doctrine.dbal.default.wrapped_connection: 
     factory_service: doctrine.dbal.default_connection 
     factory_method: getWrappedConnection 
     class: PDO 
    session.storage.pdo: 
     class:  Symfony\Component\HttpFoundation\SessionStorage\PdoSessionStorage 
     arguments: [@doctrine.dbal.default.wrapped_connection, %session.storage.options%, %pdo.db_options%] 

Как я могу это сделать?

Нужно ли расширить класс PdoSessionStorage?

Если да, то как это сделать?

ответ

2

Просто добавьте PdoSessionStorage, чтобы добавить информацию. Вы можете добавить любую зависимость к session.storage.pdo.

О идентификаторе пользователя, вам не обязательно это делать, это уже в данных сеанса (вам придется их декодировать).