НУ вот смотрите, ситуация:
На сайте имеется авторизация. Если пользователь авторизован то Имя, ава, ссылка на профиль, количество постов всегда находятся в верхней панельке на каждой странице. Выводится эта панелька в виде виджета.
Так вот, чтобы вывести инфу о пользователе, приходится писать запрос на получение данных
Код: Выделить всё
$model = UserProfile::model()->cache(1000)->with('user')->findByPk(Yii::app()->user->id);
Далее еще в каком либо виджете или контроллере нужно получить регион пользователя и вывести соответствующие данные. Регион получаем так:
Код: Выделить всё
$model = UserProfile::model()->cache(1000)->with('city')->findByPk(Yii::app()->user->id);
Получается, что пишутся 2 запроса и данные тянутся.
Как лучше оптимизировать код?
1. Закинуть все в WebUser и закешировать, а потом получать инфу из любого места с помощью созданного метода? который тянет сразу всю нужную инфу?
2. Или же тянуть данные из куков?
3. Или 1+2? сначала проверка куков, если пусты, то получаем данные, и заносим в куки?
4. Еще какой-либо вариант?