基于资源的缓存
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.0,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
基于资源的缓存
当加载所有配置资源时,您可能希望处理配置值并将它们合并到一个文件中。这个文件就像一个缓存。它的内容不必在应用程序每次运行时重新生成——只在配置资源被修改时重新生成。
例如,Symfony Routinob娱乐下载g组件允许您加载所有路由,然后根据这些路由转储URL匹配器或URL生成器。在这种情况下,当其中一个资源被修改时(并且您正在开发环境中工作),生成的文件应该失效并重新生成。这可以通过使用ConfigCache类。
下面的示例向您展示了如何收集资源,然后根据所加载的资源生成一些代码,并将这些代码写入缓存。缓存还接收用于生成代码的资源集合。通过查看这些资源的“最后修改”时间戳,缓存可以判断它是否仍然是新的,或者它的内容应该重新生成:
12 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
使用ob娱乐下载\组件\配置\ConfigCache;使用ob娱乐下载\组件\配置\资源\FileResource;$cachePath=__DIR__.“/缓存/ appUserMatcher.php”;//第二个参数表示是否使用调试模式$userMatcherCache=新ConfigCache ($cachePath,真正的);如果(!$userMatcherCache->isFresh ()) {//填充一个users数组。Yml文件路径$yamlUserFiles=……;$资源=数组();foreach($yamlUserFiles作为$yamlUserFile) {//参见上一篇文章“加载资源”//查看$delegatingLoader的来源$delegatingLoader->负载($yamlUserFile);$资源[] =新FileResource ($yamlUserFile);}// UserMatcher的代码在其他地方生成$代码=……;$userMatcherCache->写($代码,$资源);}//你可能需要缓存的代码:需要$cachePath;
在调试模式下,a.meta
文件将在与缓存文件本身相同的目录中创建。这.meta
文件包含序列化的资源,这些资源的时间戳用于确定缓存是否仍然是新的。当不在调试模式时,缓存一旦存在就被认为是“新鲜的”,因此缓存不存在.meta
将生成文件。
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。