Система кеширования

В проекте предусмотрено встроенное кеширование шаблонов, страниц и выборок. Об этом функционале рассказано в разделах выше.

Вы можете также кешировать свои любые сущности-переменные(запросы к бд) при помощи класса Cache.php Он работает по аналогии Memcached и нейминг используемых методов идентичен. Все объекты сохраняются в каталоге /temp/cache разбрасываются по уникальным каталогам для разгрузки фс, автоматически очищаются по истечении таймаутов.

Разберем каждый метод в отдельности. Для того чтобы закешировать или вызвать из кеша любую сущность вы создаете экземпляр new Cache() вызывая конструктор:

Оба аргумента опциональны, но префикс желательно задать, он нужен для того чтобы не заморачиваться с уникальными ключами хранения. Например, вы работаете с таблицей table_1 кешируя её записи, задайте префикс table_1 и в качестве уникальных ключей для записей вы сможете использовать например id, не беспокоясь что они пересекутся с другими вашими объектами кеширования с такими же ключами. Т.е. это работает по той же аналогии, если бы вы в Memcached сохраняли данные на разных серверах.

Для примера кешируем в файле public_html/cron.php объект строки из бд, чтобы не подключаться каждый раз в многопотоках к бд:

$mem = new Wrong\Memory\Cache('cron');
if (!($row = $mem->get(777))) {
$mem->set(777, $row);
}
$mem
Definition: settings.php:129
static find($value, $column='id', $table='')
Definition: Controller.php:31
Cache класс, отвечающий за кеширование
Definition: Cache.php:19

Метод get() получает сущность по определённому ключу, если она существует, метод set() сохраняет сущность в хранилище. В методе set() вы можете задать таймаут актуальности кеша в секундах. По умолчанию используется таймаут установленный в константе DEFAULT_TIMEOUT

Все доступные методы смотрите в описании класса Cache

Очищать полностью системный кеш можно в окне настроек системы. Там же на кнопке выводится информация по общему занимаемому размеру каталогом /temp/cache