基于资源的缓存

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 5.0,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

基于资源的缓存

当所有配置资源加载,您可能想要处理配置值和合并在一个文件中。这个文件就像一个缓存。其内容不需要再生每次应用程序运行,只有当被修改的配置资源。

例如,Symfony路由组件允许您欧宝娱乐app下载地址加载所有的路线,然后转储一个URL匹配器或URL发生器基于这些路线。在这种情况下,当一个修改的资源(和你在一个开发环境),生成的文件应该无效和再生。这可以通过利用来实现的ConfigCache类。

以下示例向您展示如何收集资源,然后根据加载的资源生成一些代码,编写这段代码缓存。缓存还接收资源的集合,用于生成代码。通过观察这些资源的“最后修改时间戳,缓存可以告诉如果它仍然是新鲜的或,其内容应该再生:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29
使用欧宝娱乐app下载地址\组件\配置\ConfigCache;使用欧宝娱乐app下载地址\组件\配置\资源\FileResource;美元cachePath=__DIR__“/缓存/ appUserMatcher.php”;/ /第二个参数表示是否您想要使用调试模式美元userMatcherCache=ConfigCache (美元cachePath,真正的);如果(!美元userMatcherCache- >isFresh ()) {/ /填充该数组的用户。yaml的文件路径美元yamlUserFiles=……;美元资源= [];foreach(美元yamlUserFiles作为美元yamlUserFile){/ /看文章“加载资源”/ /知道delegatingLoader美元从哪里来美元delegatingLoader- >负载(美元yamlUserFile);美元资源[]=FileResource (美元yamlUserFile);}/ / UserMatcher生成的代码美元代码=……;美元userMatcherCache- >写(美元代码,美元资源);}/ /你可能想要需要缓存的代码:需要美元cachePath;

在调试模式下,一个.meta文件将在相同的目录中创建缓存文件本身。这.meta文件包含序列化的资源,用于确定缓存时间戳的仍然是新鲜的。在调试模式下,缓存被认为是“新鲜”只要它存在,所以没有.meta将生成的文件。

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。