我在Symfony 1.4 Doctrine 1.2中构建了一个音乐应用程序。我正在使用插槽来定制我的布局标题中的facebook api元标记。例如,当我浏览歌曲页面时,该歌曲的showSuccess
将具有如下所示的插槽,该插槽使用动态信息填充布局标题元标记,具体取决于它是哪首歌曲。如何在Symfony 1.4插槽中禁用缓存动态信息
<?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
缓存(如果有帮助的话)。