Класс CPhpCache
CPhpCache - класс для кеширования PHP переменных и HTML результата выполнения скрипта.
Методы класса
Метод | Описание | С версии |
---|---|---|
StartDataCache | Инициализирует механизм кеширования и начинает буферизацию или выводит содержимое из кеша. | |
EndDataCache | Сохраняет буферизированный HTML и PHP переменные файле кеша. | |
InitCache | Инициализирует механизм кеширования. | |
GetVars | Возвращает сохраненные в кеше PHP переменные. | |
Output | Выводит сохраненный в кеше HTML результат. | |
IsCacheExpired | Проверяет истек ли период жизни кэша. | 3.3.7 |
CleanDir | Метод очищает кеш по параметру basedir. | 8.5.1 |
AbortDataCache | Отменяет создание текущего кэша. | 5.1.8 |
Смотрите также
Сергей Недзиев
|
В примере выше есть присваивание $cache_time = 3600 и это значение не меняется. После чего 2 раза делается проверка if ( $cache_time > 0.. - это лишнее, т.к. заранее известно, что $cache_time = 3600 а значит больше нуля.
|
Валерий Дьяченко
|
||||||||
Как вариант, можно написать свою функцию, на основе стандартного API, и передавать в неё collback с параметрами. Это особенно удобно, когда нужно кешировать много данных. Таким образом снижается избыточность кода, и улучшается понимание кода.
Например, у нас есть такой код, который что-то достает из БД:
Оборачиваем данный код в функцию, которая возвращает результат выборки:
И передаем полученную функцию как callback в нашу функцию кеширования:
На этом всё. Как видно, такое использование проще и понятнее, чем каждый раз использовать API напрямую. А вот код функции returnResultCache, которую можно разместить в init.php для многократного использования:
| ||||||||
Vadim Adamlyuk
|
В документации везде обходится стороной вопрос обновления кэша, в случае когда TTL (время хранения) не истекло.
Сохрание нового содержимого в кэше возможно только через предварительно удаление старого содержимого путем вызова методов cleanDir() или clean() с указанием тэга (что более правильно) |
Игорь Барковский
|
||||
Общая схема работы с кэшированием с помощью этого класса такова:
И пример получения ID всех доступных элементов инфоблоков:
| ||||
Игорь Шевчик
|
||
Пример кеширования, на мой взгляд более наглядный чем в документации
| ||
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.