Задать вопрос
@Tiasar
Web Developer

Как получить ключ сессии для Redis в YII2?

Битый час пытаюсь получить правильный ключ сессии, подскажите где что упускаю?
Есть конфиг:
'session' => [
            'class' => 'yii\redis\Session',
            'redis' => 'redis',
            'keyPrefix' => 'QAINAR_SESS_',
            'timeout' => 3600,
        ],


echo "<pre>";
echo Yii::$app->session->id . PHP_EOL;
print_r(Yii::$app->session->keyPrefix . md5(json_encode([__CLASS__, Yii::$app->session->id])));
echo  PHP_EOL;
print_r(Yii::$app->redis->executeCommand('KEYS QAINAR_SESS_*'));
echo "</pre>";

Получаю следующее:
8878353c8ca97c34021d62279cc7959a
QAINAR_SESS_85584472a3d4ad2bec0984e356079817
Array
(
    [0] => QAINAR_SESS_fd4011b394ac47f32666d77e2ecd7e6d
    [1] => QAINAR_SESS_e8192112a517f5f3b0e0e56def0aa2ce
)

Как видно ключа QAINAR_SESS_85584472a3d4ad2bec0984e356079817 в REDIS нет...
Код
Yii::$app->session->keyPrefix . md5(json_encode([__CLASS__, Yii::$app->session->id]))
взят из официального кода
https://github.com/yiisoft/yii2-redis/blob/master/...
/**
     * Generates a unique key used for storing session data in cache.
     * @param string $id session variable name
     * @return string a safe cache key associated with the session variable name
     */
    protected function calculateKey($id)
    {
        return $this->keyPrefix . md5(json_encode([__CLASS__, $id]));
    }


Как из session_id() - 8878353c8ca97c34021d62279cc7959a получить ключ для redis - QAINAR_SESS_fd4011b394ac47f32666d77e2ecd7e6d ?
  • Вопрос задан
  • 193 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы