我正在 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
forview_cache/results_cache
和 APC 进行sfPatternRouting
缓存。