PHP内存缓存内部对象


PHP memcache internal objects

我搜索了一会儿,什么也没找到。

当处理内部对象如DOM或PDO时,是否可以使用memcache来缓存它们?

我理解PDO可能无关紧要,因为连接在脚本结束时关闭-这可以更改为持久连接-使缓存更可行?

真正困扰我的是缺乏文档说明是否有可能缓存DOM对象的内存表示。XML配置文件可能非常冗长,每次请求加载这些文件,构造DOM,可能会严重占用服务器资源。

谁有缓存的经验,特别是DOM对象?我是否应该选择DOM的PHP实现,以便不必对每个请求都重新解析和初始化DOM ?

可以缓存PDO实例。您必须扩展PDO类并实现__wakeup__sleep魔术方法。

__sleep()方法将在serialize()之前调用,unserialize()期间调用__wakeup(在手册中不精确)。

您将使用__wakeup方法在Memcache反序列化后重新建立连接。

我不认为有很多人对缓存PDO实例感兴趣。

大多数核心对象不能被缓存。这是因为它们没有被正确序列化。只有实现Serializable接口的类的实例才能。

也许在某些情况下,它可以工作,如果类只有公共属性。