PHP的缓存XML?

Cached XML for PHP?

提问人:Pekka 提问时间:11/12/2009 最后编辑:Pekka 更新时间:11/12/2009 访问量:1080

问:

我有一个自定义的PHP框架,并且正在发现将配置设置存储为人类可读的简单XML的乐趣。

我很想介绍XML(非常简单的XML,像这样)

<mainmenu>
 <button action="back" label="Back"/>
 <button action="new" label="New item"/>
</mainmenu>

在框架中的许多地方。阅读、维护和扩展要有趣得多。到目前为止,配置是使用

name=value;name=value;name=value;

对、数组、变量集合等。

但是,我担心框架的性能。虽然单个 XML 操作在分析中几乎为零,但它们当然比对大字符串的简单 explode() 更昂贵。每次用户加载页面时,simpleXML(我选择的库)都会对十几个XML块进行完整的格式检查,这让我感到不舒服。

我可以自己缓存XML对象,但想要 1.)避免麻烦和 2.)不会增加框架的复杂性。

因此,我正在寻找一种不显眼的 XML“缓存”解决方案。完美的做法是可以提供文件路径并返回解析的 simpleXML 对象的函数。在内部,它使用序列化的 simpleXML 对象或其他对象在某处维护缓存。

有人知道这样做的工具吗?

请不要使用依赖于扩展的解决方案,因为该框架旨在在共享的网络托管环境中运行(这就是性能很重要的原因)。

PHP XML 缓存 simplexml

评论


答:

0赞 user207675 11/12/2009 #1

嗨,我正在使用 Zend Cache 来做这些事情,必须说它非常快,从大约 2 秒到 0.5 秒下降了一页。

1赞 Residuum 11/12/2009 #2

您可以将 XML 转换为以前的格式一次,然后通过 检查 XML 和文本文件的修改时间。如果 XML 比文本文件新,则再次执行转换。filemtime

这在某种程度上会增加复杂性,但另一方面会帮助你重用现有代码。当然,缓存是另一个可行的选择。