Вопрос кеширования Symfony (частичное кеширование) - PullRequest
4 голосов
/ 18 апреля 2010

Я использую Symfony 1.3.2, и у меня есть страница, которая использует частичное из другого модуля.

У меня есть два модуля: «foo» и «foobar». В модуле 'foo' у меня есть действие 'index', которое использует частичное из модуля 'foobar'.

так что foo / indexSuccess.php выглядит примерно так:

<?php
<div id = 'container'>
   <div id='part1'>Some data here</div>
   <div id='part2'><?php include_partial('foobar/foobar_partial', $partial_params); ?></div>
</div>
?>

Я хочу кэшировать 'part2' моей страницы foo / indexSuccess.php, потому что это очень дорого (медленно). Я хочу, чтобы время жизни кэша составляло около 10 минут.

В apps / frontend / modules / foo / config / cache.yml

Мне нужно знать, как кэшировать 'part2' страницы (т. Е. [Очень дорогую] частичную часть страницы. Кто-нибудь может сказать, какие записи требуются в файле cache.yml?

1 Ответ

5 голосов
/ 04 июня 2010

Если вы хотите кэшировать частичное имя 'part2' модуля 'foobar', вам необходимо добавить эти строки в файл apps / frontend / modules / foobar / config / cache.yml

_part2:
  enabled:  on
  lifetime: 600 # 10 minutes

Когда вы затем вызываете частичное из вашего действия index в foo, будет показана кэшированная версия (если доступна):

<?php include_partial('foobar/part2') ?>

Если вы хотите кэшировать разные версии партиала для каждого шаблона, который его вызывает, вы должны отредактировать файл cache.yml следующим образом:

_part2:
  enabled:    on
  lifetime:   600 # 10 minutes
  contextual: true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...