Данный пост – это дополнение статьи по работе с главным модулем в Bitrix D7. При однотипном выполнении некоторых участков кода, есть смысл выдавать пользователям уже готовый результат выполнения скриптов на сервере. Это позволяет в значительной степени экономить ресурсы сервера, а также быстро отрабатывать часто повторяющиеся запросы. Для этих целей мы можем использовать кэширование PHP-кода. Механизм кэширования реализован так же в главном модуле. Ранее на нашем сайте уже был материал с примерами кэширования в Bitrix, однако это касалось предыдущих версий движков. В D7 принцип использования кэширования остался практически таким же, однако изменились методы работы с ними.
Простой пример использования кэширования кода:
$cache = Bitrix\Main\Data\Cache::createInstance(); if ($cache->initCache($cacheTime, $cacheId, $cacheDir)) { // отдаём данные из кеша $arResult = $cache->getVars(); } elseif ($cache->startDataCache()) { // выполняем код, чтобы положить данные в кэш $arResult = array(); if ($isInvalid) { $cache->abortDataCache(); } $cache->endDataCache($arResult); }
При большом объеме базы данных, могут возникать проблема с производительностью. Наверное, каждый кто работал с Bitrix-ом, знает, на сколько этот вопрос актуален. Поэтому механизмов кэширования в системе может быть целое множество. Каждый из-них направлен на решение определённого рода проблем с производительностью. Поэтому стоит помнить, что существуют так же и другие виды кэширования. Вообще построение кэширования в системе, это дело серьёзное, которое так же требует некоторой сноровки от веб-разработчика. Важно найти золотую середину – компромисс между производительностью, и актуальностью отображаемых данных на сайте.