Показать страницуИстория страницыСсылки сюдаCopy this pageExport to MarkdownODT преобразованиеНаверх Вы загрузили старую версию документа! Сохранив её, вы создадите новую текущую версию с этим содержимым. Медиафайлы====== Кеширование ====== ====== Подключение ====== <code php> 'components'=>array( ... // Отключаем кеш 'cache'=>array('class'=>'system.caching.CDummyCache'), // Кеширование //'cache'=>array('class'=>'system.caching.CFileCache'), //'cache'=>array('class'=>'system.caching.CApcCache'), //'cache'=>array('class'=>'system.caching.CMemCache', 'servers'=>array(array('host'=>'localhost', 'port'=>'11211', 'weight'=>'100') ... ), </code> ====== Настройки ====== ====== Использование ====== ===== База ===== ==== DAO ==== <code php> $sql = 'SELECT * FROM tbl_post LIMIT 20'; // кешируем результат запроса 1000 секунд $rows = Yii::app()->db->cache(1000)->createCommand($sql)->queryAll(); </code> Если данные в таблице меняются, можно попробовать инвалидировать кеш, используя менее затратный запрос: <code php> $sql = 'SELECT * FROM tbl_post LIMIT 20'; // сбрасываем кеш, если результат изменился $dependency = new CDbCacheDependency('SELECT MAX(update_time) FROM tbl_post'); // кешируем на 1000 секунд $rows = Yii::app()->db->cache(1000, $dependency)->createCommand($sql)->queryAll(); </code> ==== AR ==== <code php> $posts = Post::model()->cache(1000)->findAll(); $posts = Post::model()->cache(1000)->with('author')->findAll(); </code> ===== Представления ===== <code php> <?php if($this->beginCache($id)) { ?> ---Фрагмент страницы который хотим закэшировать--- <?php $this->endCache(); } ?> </code> <code php> if($this->beginCache('emem_catalog', array('duration'=>60*60*24*365,'dependency'=>array( 'class'=>'system.caching.dependencies.CDirectoryCacheDependency', 'directory'=>$dir_to_check)))) { $this->widget('apposWidgetAppCatalog',array( 'model'=>$this->model, )); $this->endCache(); </code> ===== Кэширование страниц ===== * http://www.yiiframework.com/doc/guide/1.1/ru/caching.page#http-caching ====== Ссылки ====== * [[http://habrahabr.ru/post/140414/|Кеширование в Yii с помощью тегов]] СохранитьПросмотрРазличияОтменить Сводка изменений Примечание: редактируя эту страницу, вы соглашаетесь на использование своего вклада на условиях следующей лицензии: CC0 1.0 Universal