Как лучше всего отключить запрос кэша из полного кэша страниц (FPC) в magento (enterprise)

#magento #config #enterprise

#magento #config #Предприятие

Вопрос:

Я хочу удалить следующий параметр:

 <cms>enterprise_pagecache/processor_default</cms>
  

… из config.xml из основного / Корпоративного / кэша страниц / config.xml файл, чтобы домашняя страница не была кэширована (потому что у нас есть сложный пользовательский переключатель хранилища).

Поскольку это значение не сохраняется в core_config_data, я не уверен в наилучшем способе переопределить исходное значение. Комментарии над строкой в основном файле намекают на то, что редактировать этот файл на самом деле не является плохой практикой, однако могу ли я открыть это сообществу, чтобы узнать, что они думают?

PS = Это настройка нескольких веб-сайтов с пользовательским переключателем хранилища.

Ответ №1:

Похоже, вам может понадобиться перфорация отверстий.

Добавьте etc/cache.xml файл с <config> корнем для вашего модуля. (см Enterprise/PageCache/etc/cache.xml ). Выберите уникальное имя [заполнитель].

Значение узла placeholders / [placeholder] / block должно соответствовать идентификатору класса вашего пользовательского динамического блока, например, mymodule / custom

Значение узла placeholders / [placeholder] / container — это класс для динамической генерации содержимого и обработки кэширования на уровне блоков

Значение узла placeholders /[placeholder] / placeholder — это уникальная строка для обозначения динамических частей на кэшированной странице

заполнители /[заполнитель]/cache_lifetime игнорируются, при необходимости укажите время жизни кэша блоков в методе контейнера _saveCache()

Реализуйте класс контейнера и расширяйте Enterprise_PageCache_Model_Container_Abstract . Используется _renderBlock() для возврата динамического содержимого.

Реализуйте _getCacheId() метод в контейнере, чтобы включить кэширование на уровне блоков. Используйте значения cookie вместо идентификаторов моделей (более низкая стоимость).

И последнее замечание: при вызове у вас нет полного приложения Magento в вашем распоряжении _renderBlock() . Будьте как можно более консервативны.

ИСТОЧНИК: http://tweetorials.tumblr.com/post/10160075026/ee-full-page-cache-hole-punching

Комментарии:

1. Это хорошее объяснение того, как работают заполнители и FPC, но я пытаюсь остановить кэширование запроса к cms / index / index, поскольку файлы cookie и сеанс не обновляются корректно в моделях и контроллерах при включенном FPC. Я не вижу, чтобы логика, которую я хочу применить, могла быть перенесена в блок и, следовательно, инкапсулирована в контейнер.