Я создаю музыкальное приложение в Symfony 1.4 Doctrine 1.2. Я использую слоты для настройки метатегов facebook api в заголовке макета. Например, когда я просматриваю страницу песни, showSuccess
для песни будет иметь слот, подобный показанному ниже, который заполняет метатеги заголовка макета динамической информацией в зависимости от того, что это за песня.
<?php slot('fb_metaproperty_title') ?>
<meta property="og:site_name" content="abc"/>
<meta property="og:title" content="<?php echo $songs['song_name'].' by '.$songs['full_name'] ?>"/>
<meta property="og:type" content="song" />
<meta property="og:description" content="This song is currently ranked <?php echo $songOverallRank?>th" />
<meta property="og:url" content="<?php echo $linktosongpage ?>"/>
<meta property="og:image" content="<?php echo $images[0]?>"/>
<?php end_slot() ?>
Проблема в том, что у меня включен кеш, а переменная $songOverallRank
кэшируется в слоте, поэтому значение ранга устарело (поскольку оно часто меняется). Та же переменная $songOverallRank
актуальна в коде непосредственно под (но вне) слота. Просто значения слотов по какой-то причине кешируются и устарели.
Я проверил документацию Symfony о том, как вручную удалить значения кеша, и это кажется довольно громоздким.
Есть простая конфигурация или способ просто отключить кеш для слотов? Есть ли решение, чтобы убедиться, что слот не кэширован, а переменные извлекаются точно так же, как и остальная часть шаблона (который имеет актуальные значения)?
Я использую sfMemcacheCache
для view_cache/results_cache
и APC для sfPatternRouting
кеша, если это помогает.