[585] кэширование(CChainedCacheDependency)

Уже исправленные репорты или принятые предложения
Закрыто
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

[585] кэширование(CChainedCacheDependency)

Сообщение Ekstazi »

Добрый день. Вообщем, в контролере имею:

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

        public function filters(){
            return array(
                'accessControl',
                array(
                    'COutputCache -add, edit',
                    'duration'=>24*3600*365,
                    'dependency'=>array(
                        'class'=>'СChainedCacheDependency',
                        'dependencies'=>array(
                            new CGlobalStateCacheDependency('pm_time'),
                            new CGlobalStateCacheDependency('cu_time'),
                        ),
                    ),
                    'varyByParam'=>array('category','sort','page','lang'),
                    'varyByExpression'=>Yii::app()->user->isGuest,
                    'requestTypes'=>array('GET'),
                ),
            );
        }
 
Так не работает, потому что в CChainedCacheDependency свойство dependencies только для чтения, неудобно(решение http://www.yiiframework.ru/forum/viewto ... p=696#p696). Думаю стоит послать запрос на добавление поддержки сетера. Кто-нибудь может помочь с переводом ?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: кэширование(CChainedCacheDependency)

Сообщение samdark »

Отписывайте репорт прямо здесь. Переведу.
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: кэширование(CChainedCacheDependency)

Сообщение Ekstazi »

У меня есть контролер, например PriceController, и ему я подцепил фильтр COutputCache, который зависит от двух зависимостей: new CGlobalStateCacheDependency('pm_time'),new CGlobalStateCacheDependency('cu_time'). По логике вещей, нужно определить в контролере вот так:

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

        public function filters(){
            return array(
                'accessControl',
                array(
                    'COutputCache -add, edit',
                    'duration'=>24*3600*365,
                    'dependency'=>array(
                        'class'=>'СChainedCacheDependency',
                        'dependencies'=>array(
                            new CGlobalStateCacheDependency('pm_time'),
                            new CGlobalStateCacheDependency('cu_time'),
                        ),
                    ),
                    'varyByParam'=>array('category','sort','page','lang'),
                    'varyByExpression'=>Yii::app()->user->isGuest,
                    'requestTypes'=>array('GET'),
                ),
            );
        }
  
однако, в документации говорится что в CChainedCacheDependency свойство dependencies только для чтения. Что очень неудобно для использования, приходится поступать вот так:

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

 public function filters(){
$chain = new CChainedCacheDependency;
$dependencies = $chain->dependencies;
$dependencies[] =new CGlobalStateCacheDependency('pm_time');
$dependencies[] =new CGlobalStateCacheDependency('cu_time');

            return array(
                'accessControl',
                array(
                    'COutputCache -add, edit',
                    'duration'=>24*3600*365,
                    'dependency'=>$chain,
                    ),
                    'varyByParam'=>array('category','sort','page','lang'),
                    'varyByExpression'=>Yii::app()->user->isGuest,
                    'requestTypes'=>array('GET'),
                ),
            );
        }

 
Что неудобно для использования. (Не для перевода - Думаю стоит послать feature request.)
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: кэширование(CChainedCacheDependency)

Сообщение samdark »

Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: [585] кэширование(CChainedCacheDependency)

Сообщение samdark »

Да, быстр Qiang на подъём. В SVN залил 10-20 минут назад. Войдёт в релиз 1.0.10.

http://code.google.com/p/yii/source/detail?r=1415
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: [585] кэширование(CChainedCacheDependency)

Сообщение Ekstazi »

Спасибо :)
Закрыто