如何读取大XML数据并在PHP中缓存它
I am doing a PHP app and I need to read several xml files containing text and I want show it to the user. This is working without any problems.
The information stored in those files could be cached for a long time as it does not change too often. However, those files tend to be kind of heavy so it could be a bad idea to load them at every request. i'm trying to find a way to load the data in a lazy way maybe by using a singleton and store them somewhere. Si, I still have the following questions:
- where to store de data? as session parameters?
- how to do the lazy loading? using singleton? is that even a good idea in php?
Thanks a lot
我正在做一个PHP应用程序,我需要阅读几个包含文本的xml文件,我想将它显示给用户 。 这没有任何问题。 p>
存储在这些文件中的信息可能会被缓存很长时间,因为它不会经常更改。 但是,这些文件往往有点沉重,因此在每次请求时加载它们都是一个坏主意。 我试图找到一种以懒惰的方式加载数据的方法,可能是通过使用单例并将它们存储在某处。 Si,我还有以下问题: p>
- 存储数据的位置? 作为会话参数? li>
- 如何进行延迟加载? 使用单身人士? 这在php中是个好主意吗? li>
ul>
非常感谢 p> div>
Do not use session parameters. These are typically stored in a text file which is parsed every time you call session_start()
. You should avoid storing anything more than a few bytes there.
Use an external cache system instead. The APC extension offers a simple in-memory user cache, or otherwise you can use Memcached for a cache system that can be shared between many php servers.
Lazy loading is not difficult:
...
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;
}
...