Symfony не очищает переменные в сессии, когда истекло её время жизни

Symfony framework

Автор: Александр Степанов

5 февр. 2013 г., 10:43:32  1171


Когда пользователь логиниться, обычно в сессию добавляются какие-то параметры, например имя, фамилия, всё что угодно, делается это так:

#apps/frontend/lib/myUser.class.php
...
 
public function authenticate($user = null)
{
    $this->setAuthenticated(true);  
    
    $this->setAttribute('username', $user->getUsername());
    
   ...
      
}
...

Как видно, параметр добавляется через метод setAttribute($param_name, $param_value). После истечения времени жизни сессии, требутся чтобы эти параметры тоже удалились для этого нужно переопределить метод initialize базового класса sfBasicSecurityUser

#apps/frontend/lib/myUser.class.php
 
class myUser extends sfBasicSecurityUser
{
 
  public function initialize(sfEventDispatcher $dispatcher, sfStorage $storage, $options = array()) {
   
      parent::initialize($dispatcher, $storage, $options);
    
      if ($this->isTimedOut())  {
        $this->getAttributeHolder()->clear();
      }
  }
  ...
  ...
 
}