Кеш объектов внутри ActiveRecord

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
wartur
Сообщения: 11
Зарегистрирован: 2014.02.01, 21:28

Кеш объектов внутри ActiveRecord

Сообщение wartur »

Хотелось бы узнать для спортивного интереса. Возможно ли как-то в Yii2, чтобы AR работала через кеш объектов? Имеется ввиду, что допустим я загружаю Item, дальше в другой части приложения (в том же запросе) мне приходится еще раз дергать через AR связи тот же самый item, хотелось бы чтобы он на данный запрос был бы тем же объектом. То есть Item::findOne() возвращал тот же объект. Есть какая-то реализация в самом AR или какое-то расширение?
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Кеш объектов внутри ActiveRecord

Сообщение SiZE »

RTFM

Код: Выделить всё

$result = Item::getDb()->cache(function ($db) {
    return Item::find()->where(['id' => 1])->one();
});
или

Код: Выделить всё

Item::find()->cache(7200)->all();
Но если ты хочешь использовать один и тот же объект, тогда тебе подойдет композиция
Ответить