Содержание
В рамках данной небольшой заметки, я расскажу вам о нескольких особенностях модуля кэширования v2pagecache для OpenCart, не учитывая которые можно столкнуться с рядом проблем.
Прежде, чем далее что-либо описывать, хотел бы обратить ваше внимание на то, что модуль v2pagecache, при определенных обстоятельствах, позволяет действительно добиться хорошей производительности, на то, что модуль является бесплатным и его автор уделил ему явно много сил и времени, и на то, что он успешно используется в реальных интернет-магазинах.
Первое. Подход к кэшированию в модуле v2pagecache
Высокая скорость — это, пожалуй, его самое основное положительное достоинство. Такая производительность достигается за счет того, что после кэширования страницы практически ничего из ядра OpenCart не запускается. А на клиентскую сторону уже отдается чистый сгенерированный html. В некотором смысле, это практически метод превращения динамического движка в набор статичных html-страниц.
Однако, это обстоятельство имеет и обратную сторону. Как и любой html-код, он ничего не выполняет на серверной стороне.
В ОперКарте есть механизм Event (хоть и в зачаточном виде), позволяющий запускать некоторые действия по наступлению событий. Это означает, что если некоему модулю необходимо при каждом открытии страницы и запуске соответствующих событий выполнять какие-то действия, то при использовании v2pagecache они будут выполняться только при первом открытии страницы.
Стоит понимать, что все это так же касается и ajax-запросов.
Конечно, можно добавлять исключения страниц. Однако, если составленные правила, например, касаются модуля вывода карточки товара, то все преимущество в скорости быстро становится бесполезным.
Так же важно понимать, что если не запускаются ядровые механизмы, то любая встроенная функциональность, такая как трекинг в маркетинге, становится бесполезной. Еще пример, куки страниц с данными не будут меняться (хотя бы их время жизни). Думаю, понятно, о чем идет речь.
Второе. Метод установки и контроль активности модуля v2pagecache
Установка модуля происходит очень просто, вы загружаете архив и включаете модуль в OpenCart стандартным образом. Тут особых проблем не возникает.
Проблема касается того, как модуль определяет, что кэширование включено. Оказывается, что контроль активности модуля определяется количеством строк с комментарием «//V2PAGECACHE».
Кстати, если количество строк не совпадает с необходимым, то модуль выдает весьма не информативное сообщение об ошибке. Поэтому, в первый раз корректируя модуль, приходится лезть в код модуля, чтобы понять о чем идет речь.
Если в стандартной ситуации это обстоятельство не является очень важным (модуль сам корректно удаляет и добавляет строки), то в случае необходимости корректировать процесс кэширования v2pagecache, чтобы запускались некоторые ядровые механизмы или же чтобы код не влиял на другие правки, это может вызвать ряд проблем.
Первая весьма банальна. Количество комментариев вида «//V2PAGECACHE» должно соответствовать необходимому количеству (сейчас это 9), иначе модуль будет выдавать статус ошибки в админке.
Вторая уже существенней. Дело в том, что при выключении, модуль удаляет все строки с этим комментарием. Это значит, что если вы вносили корректировки в index.php корня и это хоть как-то касалось логики кэширования, то простое выключение легко может сделать правки кода не читаемыми и положить сайт с 500 ошибкой. Поэтому, советую всегда делать резервную копию index.php, так как отключение кэширования периодически может требоваться.
В конце статьи хотел бы еще раз обратить ваше внимание на то, что, при определенных обстоятельствах, модуль v2pagecache позволяет добиваться действительно высокой производительности интернет-магазина.