开放的编程资料库

当前位置:我爱分享网 > PHP教程 > 正文

PHP 的简单缓存

我今天在PHPit上看到一篇关于“如何使用PHP构建一个简单的缓存系统”的文章。总的来说,这是一篇相当不错的文章,并且使用了一些很好的原则(使用输出缓冲区捕获内容,使用回调来抓取捕获的内容)。不过,我会做一些小的改进。

我会更改一些确定的区域。首先,die()对我来说没有意义,因为它是一种在找到内容时中止执行的方法。exit(0)更有意义—它表示执行成功。

此外,清除给定页面缓存的功能通常很有用。添加对$_GET$SERVER['PATH_INFO']元素的检查可以满足这一要求。

文章说要在每个页面上包含具有缓存功能的文件。我对此有几个问题:

  1. 很容易忘记包含它。
  2. 命名空间——在全局区域中使用函数可能会与其他用户定义的函数发生冲突。

要解决(1),请使用auto_prepend_file指令。您可以在a.htaccess文件(php_value"auto_prepend_file""/path/to/cache.php")、httpd.conf或直接在您的php.ini;在任何一种情况下,它只需要被定义一次,你永远不必在你的脚本中担心它。如果有您不想缓存的脚本,您可以覆盖单个.htaccess指令中的值,或在缓存例程中设置哈希查找以跳过此类脚本。

要解决(2),请将函数包装到一个类中。您仍然可以静态调用项目(Cache::get_url()等)。这也将允许您定义如上所述的哈希查找—只需将其放在静态属性中即可。

最后,这一切之前都已经完成了。PEAR::Cache_Lite提供了所有这些功能(减去为每页创建唯一标识符的例程),甚至更高效。我在实践中看到的唯一区别是,当使用PEAR::Cache_Lite时,我还必须执行auto_append_file以停止输出缓冲。

总的来说,这是一篇不错的文章和页面缓存介绍。

未经允许不得转载:我爱分享网 » PHP 的简单缓存

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏