缓存
3.2
的缓存
3.2标签添加了树枝。
的缓存
标签告诉树枝缓存一个模板片段:
1 2 3
{%缓存“缓存键”%}缓存永远(取决于缓存实现){%endcache%}
如果你想要缓存到期一定的时间后,指定一个过期在几秒钟内通过ttl ()
修饰符:
1 2 3
{%缓存“缓存键”ttl (300) %}缓存为300秒{%endcache%}
缓存键可以是任何不使用以下保留字符的字符串{}()/ \ @:
;一个良好的实践是将一些有用的信息嵌入到关键允许缓存自动到期时必须刷新:
- 给每个缓存一个唯一的名称和名称空间就像你的模板;
- 嵌入一个整数,你增加当模板代码更改(自动所有当前缓存失效);
- 嵌入一个唯一键更新时使用的变量的模板代码更改。
例如,我将使用{%缓存”blog_post; v1;“~ post.id ~ ";" ~ post.updated_at %}
博客内容模板缓存片段blog_post
介绍了模板片段,v1
表示模板的第一个版本的代码,post.id
代表博客文章的id,post.updated_at
返回一个时间戳,表示博客文章最后修改的时间。
使用这种命名的策略缓存键可以避免使用ttl
。这就像用一个“验证”的策略,而不是一个“过期”战略作为HTTP缓存我们所做的。
如果您的缓存实现支持标签,你也可以标记你的缓存条目:
1 2 3 4 5 6 7
{%缓存“缓存键”标签(“博客”)%}一些代码{%endcache%}{%缓存“缓存键”标签([cms, '博客'])%}一些代码{%endcache%}
的缓存
标签创建一个新的变量的“范围”,这意味着本地更改模板片段:
1 2 3 4 5 6 7 8 9 10
{%集数= 1%}{%缓存“缓存键”标签(“博客”)%}{#的值不会影响计数之外的缓存标签#}{%集数= 2%}一些代码{%endcache%}{#显示1 #}{{数}}
请注意
的缓存
标签的一部分CacheExtension
这不是默认安装。安装:
1
美元作曲家需要树枝/缓存留
在Sy欧宝娱乐app下载地址mfony项目,你可以通过安装自动启用它树枝/ extra-bundle
:
1
美元需要树枝/ extra-bundle作曲家
在树枝或添加扩展明确环境:
1 2 3 4
使用嫩枝\额外的\缓存\CacheExtension;美元嫩枝=新\树枝\环境(…);美元嫩枝- >addExtension (新CacheExtension ());
如果你不使用Symfony,你还必须注册扩欧宝娱乐app下载地址展运行时:
1 2 3 4 5 6 7 8 9 10 11 12
使用欧宝娱乐app下载地址\组件\缓存\适配器\FilesystemAdapter;使用欧宝娱乐app下载地址\组件\缓存\适配器\TagAwareAdapter;使用嫩枝\额外的\缓存\CacheRuntime;使用嫩枝\RuntimeLoader\RuntimeLoaderInterface;美元嫩枝- >addRuntimeLoader (新类实现了RuntimeLoaderInterface{公共函数负载(美元类){如果(CacheRuntime::类= = =美元类){返回新CacheRuntime (新TagAwareAdapter (新FilesystemAdapter ()));}}});