我正在做一个 PHP 应用程序,我需要读取几个包含文本的 xml 文件,我想将它展示给用户。这工作没有任何问题。
存储在这些文件中的信息可能会被缓存很长时间,因为它不会经常更改。但是,这些文件往往有点重,因此在每次请求时加载它们可能不是一个好主意。我正在尝试找到一种方法以惰性方式加载数据,可能是使用单例并将它们存储在某处。Si,我还有以下问题:
- 在哪里存储数据?作为会话参数?
- 如何进行延迟加载?使用单例?这在php中是个好主意吗?
非常感谢
我正在做一个 PHP 应用程序,我需要读取几个包含文本的 xml 文件,我想将它展示给用户。这工作没有任何问题。
存储在这些文件中的信息可能会被缓存很长时间,因为它不会经常更改。但是,这些文件往往有点重,因此在每次请求时加载它们可能不是一个好主意。我正在尝试找到一种方法以惰性方式加载数据,可能是使用单例并将它们存储在某处。Si,我还有以下问题:
非常感谢
不要使用会话参数。这些通常存储在一个文本文件中,每次调用时都会对其进行解析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;
}
...