#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. Я не вижу, чтобы логика, которую я хочу применить, могла быть перенесена в блок и, следовательно, инкапсулирована в контейнер.