1

我正在做一个 PHP 应用程序,我需要读取几个包含文本的 xml 文件,我想将它展示给用户。这工作没有任何问题。

存储在这些文件中的信息可能会被缓存很长时间,因为它不会经常更改。但是,这些文件往往有点重,因此在每次请求时加载它们可能不是一个好主意。我正在尝试找到一种方法以惰性方式加载数据,可能是使用单例并将它们存储在某处。Si,我还有以下问题:

  • 在哪里存储数据?作为会话参数?
  • 如何进行延迟加载?使用单例?这在php中是个好主意吗?

非常感谢

4

1 回答 1

0

不要使用会话参数。这些通常存储在一个文本文件中,每次调用时都会对其进行解析session_start()。您应该避免在那里存储超过几个字节的内容。

请改用外部缓存系统。APC 扩展提供了一个简单的内存用户缓存,或者您可以将 Memcached 用于可以在许多 php 服务器之间共享的缓存系统。

懒加载并不难:

...
private static $my_cached_object = null;
public static function GetMyObject() {
   if (null === self::$my_cached_object) {

      self::$my_cached_object = load_my_object();

   }
   return self::$my_cached_object;
}
...
于 2013-08-09T15:13:57.363 回答