На Framework Foton используется 3 типа кеширования:
1. Redis
2. Memcached
3. Файловый кеш
Работа с Redis
Для работы с Redis необходимо установить библиотеку Redis и подключаете как в примере:
<?
public function news(){
$arr =
[
'news',
'sort'=>array('id'=>'DESC'),
'where'=>array('=pub'=>'on')
];
return $this->core->getlist($arr);
}
Например нам нужно закешировать результат метода ядра getlist, тогда меняем код метода вот так:
<?
use Foton\Lib\RCache;
class test{
public function news(){
$arr_cache = array('127.0.0.1','11211');
$obj = new RCache($arr_cache);
$arr = array(
'news',
'sort'=>array('id'=>'DESC'),
'where'=>array('=pub'=>'on')
);
return $obj->Core->getlist($arr);
}
}
Работа с Memcached
Для работы с Memcached необходимо установить библиотеку Memcache и подключаете как в примере:
<?
public function news(){
$arr =
[
'news',
'sort'=>array('id'=>'DESC'),
'where'=>array('=pub'=>'on')
]
return $this->core->getlist($arr);
}
Например нам нужно закешировать результат метода ядра getlist, тогда меняем код метода вот так:
<?
use Foton\Lib\MCache;
class test{
public function news(){
$arr_cache = array('127.0.0.1','11211',50);
$obj = new MCache($arr_cache);
$arr = array(
'news',
'sort'=>array('id'=>'DESC'),
'where'=>array('=pub'=>'on')
);
return $obj->Core->getlist($arr);
}
}
Работа с файловым кешем
Для работы с файловым кешем ничего устанавливать не нужно, просто подключаете его как в примере:
<?
public function news(){
$arr =
[
'news',
'sort'=>array('id'=>'DESC'),
'where'=>array('=pub'=>'on')
];
return $this->core->getlist($arr);
}
Например нам нужно закешировать результат метода ядра getlist, тогда меняем код метода вот так:
<?
use Foton\Lib\Cache;
class test{
public function news(){
$timeCache = 50;
$obj = new Cache($timeCache);
$arr = array(
'news',
'sort'=>array('id'=>'DESC'),
'where'=>array('=pub'=>'on')
);
return $obj->Core->getlist($arr);
}
}
Для очистки всего файлового кеша добавьте в код $obj->clearCache(); - данный метод полностью очистит директорию кеша /system/cache/
<?
public function clearCache(){
$timeCache = 50;
$obj = new Cache($timeCache);
$obj→clearCache();
}
Для очистки конкретного файла кеша добавьте в код $obj->delCache($file); - где $file – название файла, данный метод удалит файл кеша /system/cache/$file.php
<?
public function clearCache(){
$timeCache = 50;
$obj = new Cache($timeCache);
$file = 'myfile';
$obj->delCache($file);
}