Страница 1 из 2

насчет кэширования

СообщениеДобавлено: 25 янв 2015, 15:39
vanred79
Добрый день! В руководстве yii нашел код который кэширует страницы:
Код: Выделить всё
public function filters()
{
    return array(
        array(
            
'CHttpCacheFilter + index',
            
'lastModified'=>Yii::app()->db->createCommand("SELECT MAX(`update_time`) FROM {{post}}")->queryScalar(),
        ),
    );

Но там не написано в какой файл его вставлять этот код. Поясните пожалуйста логику применения этого кода и как в ORE его применить.

Код брал отсюда http://www.yiiframework.com/doc/guide/1 ... ching.page

Re: насчет кэширования

СообщениеДобавлено: 26 янв 2015, 09:10
Xpycm
Здравствуйте.

Этот код необходимо добавлять в нужный контроллер ( protected/modules/название_модуля/controllers )

Ссылка в тему: https://www.google.ru/search?q=yii+filters

Re: насчет кэширования

СообщениеДобавлено: 26 янв 2015, 15:04
vanred79
Пробовал вставить этот код (в первом посте) сюда /protected/controllers/SiteController.php - главная не открылась
пробовал сюда protected/modules/apartments/controllers/MainController.php - ошибка 404

Re: насчет кэширования

СообщениеДобавлено: 26 янв 2015, 15:23
Xpycm
Не удивительно.

В нашем продукте нет таблицы {{post}} и поля update_time

Да и в файле protected/modules/apartments/controllers/MainController.php нет метода actionIndex

Re: насчет кэширования

СообщениеДобавлено: 26 янв 2015, 15:29
vanred79
Xpycm писал(а):Не удивительно.

В нашем продукте нет таблицы {{post}} и поля update_time

Да и в файле protected/modules/apartments/controllers/MainController.php нет метода actionIndex

А аналогичные есть (с другими названиями) или надо создавать эти поля?

Re: насчет кэширования

СообщениеДобавлено: 26 янв 2015, 15:32
Xpycm
Посмотрите в БД.

Есть в большинстве таблиц поле что-то вроде date_updated

Re: насчет кэширования

СообщениеДобавлено: 26 янв 2015, 16:10
vanred79
Xpycm писал(а):Посмотрите в БД.

Есть в большинстве таблиц поле что-то вроде date_updated

с датой понятно, а post что может быть не подскажете?

Re: насчет кэширования

СообщениеДобавлено: 26 янв 2015, 16:56
vanred79
Хруст, не подскажете как можно адаптировать этот код под ORE:
Код: Выделить всё
public function filters(){
        return array(
            array(
                
'COutputCache + index',
                    
'duration'=>24*3600*30,
                    
'dependency'=>array(
                        
'class'=>'CChainedCacheDependency',
                        
'dependencies'=>array(
                            new 
CDbCacheDependency('SELECT MAX(update_date) FROM section'),
                            new 
CDbCacheDependency('SELECT MAX(update_date) FROM magazins'),
                        ),
                    ),
                    
'varyByParam'=>array('S','B'),
           ),
        );
    } 

А если точнее вот этот кусок
Код: Выделить всё
 'dependency'=>array(
                        
'class'=>'CChainedCacheDependency',
                        
'dependencies'=>array(
                            new 
CDbCacheDependency('SELECT MAX(update_date) FROM section'),
                            new 
CDbCacheDependency('SELECT MAX(update_date) FROM magazins'), 


У меня на сайте стали появляться ошибки при обращении к БД, хостер рекомендовал оптимизировать запросы к серверу.
На форумах нашел вышеуказанный код, который вроде помогает решить эту проблему.

Re: насчет кэширования

СообщениеДобавлено: 27 янв 2015, 05:39
lomuk
Memcached включи
viewtopic.php?f=17&t=1285

Re: насчет кэширования

СообщениеДобавлено: 27 янв 2015, 07:49
vanred79
lomuk писал(а):Memcached включи
viewtopic.php?f=17&t=1285

на виртуальном хостинге можно включить Memcached?