Кэшируйте личность пользователя - PullRequest
0 голосов
/ 25 апреля 2019

Есть ли способ кеширования личности?В моем коде у меня есть несколько запросов к базе данных о профиле пользователя.Я думаю, что должен быть способ кэшировать его, чтобы предотвратить несколько запросов.

yii::$app->user->identity

1 Ответ

0 голосов
/ 26 мая 2019

Идентификация должна быть уже кэширована в контексте запроса (только один запрос на запрос).

Если вы хотите кэшировать идентичность между запросами, вы можете реализовать кэширование в findIdentity() реализации класса, используемого как $identityClass вашего user компонента:

public static function findIdentity($id) {
    return static::find()->cache(60)->where(['id' => $id])->one();
}

Но обычно это не стоит проблем - один простой запрос, использующий первичный ключ, должен быть очень быстрым, кэширование не даст ощутимого прироста производительности, в то время как может вызвать некоторые странные ошибки, связанные с кэшем.

...