Обновление время жизни сессии в Yii фреймвоке

В свойстве CWebUser есть очень полезное свойство autoRenewCookie, которое позволяет продлить время жизни авторизации. Однако, это свойство, никак не продлевает хранение сессионных данных, которые устаревают независимо от авторизации пользователя. Чтобы продлить время сессии, нужно выполнить следующий код:

    $cookies = Yii::app()->getRequest()->getCookies();

    $cookie = $cookies->itemAt('PHPSESSID');

    if ($cookie != FALSE)
    {       
        $cookie->expire = time() + Yii::app()->session->cookieParams['lifetime'];

        $cookies->add('PHPSESSID', $cookie);
    }

Поле expired в локальном хранилище (например, в БД через CDbHttpSession), обновится автоматически.

comments powered by HyperComments