在我的所有PHP脚本上加载相同的XML数据

时间:2011-03-14 10:49:31

标签: php xml

我目前正在开发一个小型PHP网站,其中所有数据都存储在一个XML文件中,并以各种方式将XSLT转换为HTML。对于用户,数据是只读的,但有时会由站点管理员修改XML文件。

目前,每个PHP脚本都将XML文件中的数据加载到DOMDocument对象中。这是在每个请求的每个脚本上完成的,但这当然不是最好和最快的方式。

您建议采用哪种方法来减少开销并使XML数据随时可用而无需每次都打开文件,但考虑到可以修改XML文件的事实?

2 个答案:

答案 0 :(得分:2)

明显的解决方案是使用Cache,例如memcached。将方法调用的结果缓存到DomDocument::load()。管理员更改XML时无效缓存。

但是,您应该首先分析您的应用程序,以确保您当前的解决方案确实对您的应用程序产生任何负面和明显的影响。文件I / O和XML解析可能是一个瓶颈,但如果真的很重要,你应该先找出它。

答案 1 :(得分:1)

您可以通过多种方式缓存您的应用程序:

Memcached是一个很好的缓存解决方案。对于较小的站点,缓存到文本文件也可能有效。如果加载的数据很小,您甚至可以考虑序列化数组并将其放入会话中,但我不确定除非数据量非常小,否则我会建议这样做。

如果从XML文件中读取的数据量相当小,我只会坚持使用您当前的解决方案。