yupe/yupe — pull request #347 by miroslav-chandler (2012-10-20 19:27:46+00:00)
Title: Кэширование

предлагаю модифицировать логику кэширования используя CGlobalStateCacheDependency
плюс в том, что кэш остаеться всегда свежим
в модуле объявляем название
```php
public $menuCache = 'menu.cache';
```
в моделях добавляем
```php
protected function afterSave()
{
Yii::app()->setGlobalState(Yii::app()->getModule('menu')->menuCache, YII_BEGIN_TIME);
}

protected function afterDelete()
{
Yii::app()->setGlobalState(Yii::app()->getModule('menu')->menuCache, YII_BEGIN_TIME);
}
```
при поиске в бд
```php
$dependency = new CGlobalStateCacheDependency(Yii::app()->getModule('menu')->menuCache);
$results = self::model()->cache(Yii::app()->getModule('yupe')->coreCacheTime,$dependency,2)->with(array('menuItems' => array(
'on' => 'menuItems.parent_id = :parent_id AND menuItems.status = 1',
'params' => array('parent_id' => (int) $parent_id),
'order' => 'menuItems.sort ASC, menuItems.id ASC',
)))->findAll(array(
'select' => array('id', 'code'),
'condition' => 't.code = :code AND t.status = 1',
'params' => array(':code' => $code),
));
```