Для прохождения собеседования дали задание, его часть - хранить сессии в Redis. А я, блять, его нихуя не знаю.
Помогите кто чем может, на пенёк не садитесь
Кому, интересно, говнокод в модели
Модифицирую стандартную LoginForm модель. Авторизация у меня без пароля. Если юзер уже авторизован и пытается еще раз - метод возвращает false. По истечении сессии все данные о юзере (session['username'], хеш редиса) уничтожаются.
public function login()
{
$redis = new Predis\Client();
if(!$redis->exists($this->username)) //Если юзер не был авторизован
{
$duration = 3600*24; //для сессии и уничтожения $redis->exists($this->username)
Yii::app()->session['username'] = $this->username;
//тут нужно сохранить phpsession в redis на $duration секунд
//состояние юзера храню в redis, хешем
$redis->hmset($this->username, array(
'inClass' => 1,
'handUp' => 0,
)
);
$redis->expireat($this->username, $duration); //удалить данные о юзере по истечении
return true;
}
else
return false;
}