OpenCart 🇺🇦

Статья "Механизм кеширования в OpenCart"

Механизм кеширования в данной CMS весьма прост: данные сериализируются и затем помещаются в файл кеша. В момент, когда нужно кеш извлечь, данные из файла десирреализируются и возвращаются в модел (или контроллер).

Механизм кеширования обеспечивает специальный класс (system/library/Cache.php), в котором ест три метода: get($key), set($key, $value), delete($key), которые реализуют необходимый функционал.

Итак, что-же на самом деле происходит при записи в кеш:
  1. Открывается для записи файл в папке system/cache/$key/(time() + 3600)
  2. В файл происходит запись данных:
    fwrite($handle, serialize($value));
    

При получении кеша, происходит открытие этого самого файла, в зависимости, если в названии файла время, в которое истекает срок хранения записи, меньше текущего времени ($time < time()), то возвращается null, иначе происходит unserialize($data) и возврат исходного значения.

При вызове delete(), файл попросту удаляется.

Стоит так-же заметить, что для своего проекта этот класс можно легко переделать под мемкеш, или реализовать другой кеширующий механизм.