Кеширование помогите разобраться.

Помогите разобраться со следующим…

По умолчанию все документы кешируються в core/cache/resource/web/resources

Положим мне надо кешировать 1 и туже страницу применив к ней разный шаблон и чтобы кешь сохранился обоих вариантов.

Поискав, в коментах тут modx.im/blog/questions/878.html нашел что нужно указать настройку для кеширования ресурса
$modx->setOption('cache_resource_key', 'resource/pjax');
но при такой установке полностью затирается core/cache/resource/web/resources и теряется старый кешь.
если же задать
$modx->setOption('cache_resource_key', 'pjax');
то сохраняется старая и появляется новая директория core/cache/pjax/web/resources

Вроде методом тыка понятно. Но блин где почитать документацию какие ключи что меняют.

К примеру cache_resource_key нету в конфигурации системы и по умолчанию его нету либо он пустой.

Но устанавливая его получаем смену директории кеширования ресурса!!!
В исходниках xpdo и modx кешь менеджеров таких ключей вроде нигде нет.

Куда рыть или может уже кто знает поделитесь черной магией(((
Мордынский Николай
24 декабря 2013, 21:24
modx.pro
1 759
0

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

Мордынский Николай
25 декабря 2013, 01:33
0
И в догонку… в ресурсы кешируються только не посредсвенно страницы как таковые, а куда к примеру будет кеширован результат работы getPage / pdoPage опять же надо кешировать оба варианта для двух шаблонов.

P.S делаю смену шаблонов на лету для выдачи мобильного контента на мобильных устройствах.

Вариант с 2 доменом и копированием контента во 2 контекст знаю.
    Евгений Дурягин
    25 декабря 2013, 02:48
    0
    Где вызываете $modx->setOption('cache_resource_key', 'resource/pjax'), так же как и в примере в плагине на OnWebPageInit?
    Проверил — в кэше обе папки core/cache/resource/web/resources/ и core/cache/resource/pjax/web/resources/

    У getPage и pdoPage есть параметр cache_key, в котором указывается ключ кэширования. Но по умолчанию берется из настройки cache_resource_key, которая заранее и меняется через setOption. Т.е. оба сниппета должны автоматом разделять кэш.
      Мордынский Николай
      25 декабря 2013, 10:41
      0
      Евгений спасибо за ответ… по рунету в основном ваши комментарии единственные полезные в плане кэширования остальное вода…
      modx->setOption('cache_resource_key', 'resource/pjax')
      вызывал в тестовом сниппете.

      В плагине вызываю через объект самописного класса
      Евгений Дурягин
      25 декабря 2013, 12:38
      0
      вызывал в тестовом сниппете.
      Так делать бесполезно. Когда выполняется сниппет ресурс уже загружен из кэша и загружается с ключем resource, а не resource/pjax.
      В лучшем случае документ будет всегда браться из базы, т.к. в кэше не будет находить (берется то он с ключем resource, а сохранятся будет с ключем resource/pjax), в худшем документ будет не с тем шаблоном.

      Надо обязательно делать это в плагине, и на событии которое вызывается до загрузки документа

      В плагине вызываю через объект самописного класса
      Не понял что именно вызываете, setOption?
        Мордынский Николай
        26 декабря 2013, 01:31
        0
        Да setOption только до работчего состояния класс не могу довести чтобы проверить опыта ООП совсем нет(( уперся в 1 месте
          Мордынский Николай
          27 декабря 2013, 03:11
          0
          Огромное спасибо все работает.
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          6