用于缓存目的的代码生成

Posted

技术标签:

【中文标题】用于缓存目的的代码生成【英文标题】:Code generation for caching purposes 【发布时间】:2013-01-22 16:22:49 【问题描述】:

我需要缓存一个非常昂贵的操作的结果,该操作涉及扫描目录并获取其文件的内容。

解决问题的一个好方法是将结果缓存在 php 文件中。由于 php 文件加载速度非常快,我正在考虑将整个结果数组序列化为 php 有效的形式,写入磁盘并准备好包含在内。

我的问题是:是否有任何工具/库/框架可以在 php 代码中执行序列化任务以用于缓存目的? 如果没有,实现这一目标的最佳做法是什么?

编辑:

感谢杰克var_export!

关于如何将一些代码添加到 symfony cc 以触发此缓存的生成的任何想法?

【问题讨论】:

symfony 的哪个版本? 其实是symfony 1.4.5-DEV 你看过var_export()吗? var_export 非常完美,谢谢! 【参考方案1】:

使用 symfony 的 sfCache 类。它可以存储和检索对象,并使用各种缓存后端(可以使用文件、数据库或APC作为后端)

使用很简单:(我使用APC as cache storage,因为我的服务器上已经启用了APC。如果你想将数据存储在文件中,你可以使用sfFileCache)

$cache = new sfAPCCache();
if ($cache->has('data')) 
  return $cache->get('data');
 else 
  $data = calcualte_data();
  $cache->set('data',$data);
  return $data;

【讨论】:

以上是关于用于缓存目的的代码生成的主要内容,如果未能解决你的问题,请参考以下文章

是否有用于缓存数据的通用c#源代码?

memcache 细究

开发工具介绍及创建第一个小程序页面

php WordPress Transients API,用于在不同时间使网页缓存部分到期的代码

使用 Webpack 仅使用 Workbox 插件构建服务工作者代码 -> 无法指定用于预缓存的入口目录

获取 Disqus html 代码以在源代码中显示以用于 SEO 目的