我有一个非常重的类定义,它依赖于MySQL(即有时可能很慢).
我已经成功安装并开始在PHP中使用Memcache库.这使我无需重新查询即可存储整个对象.
但是,我扩展了类以自动更新数据库中的所有更改.我使用__get和__set跟踪更改,然后更新__destruct
我无法弄清楚如何测试的是Memcache删除对象时是否调用了__destruct.
任何人都知道一个事实/关于如何测试它的建议?
解决方法:
不,内存缓存不会破坏对象.您的对象不断__sleep()和__wakeup().但是由于PHP不是破坏或丢失对象的一种,所以永远不会调用析构函数.您的缓存库有一个外部机会,在过期后将其从内存缓存中删除,然后销毁该对象,从而调用__destruct()..但这取决于实现.