我有一个非常重的类定义,它依赖于 MySQL(即有时可能很慢)。
我已经在 PHP 中成功安装并开始使用 Memcache 库。这使我可以存储整个对象而无需重新查询它们。
但是,我已经扩展了我的类(class)以自动更新任何更改的数据库。我使用 __get
和 __set
来跟踪变化,然后在 __destruct
我不知道如何测试的是当 Memcache 删除对象时是否调用了 __destruct
。
有人知道事实/对如何测试有建议吗?
最佳答案
不,内存缓存不会破坏对象。你的对象是不断地 __sleep()
'ing 和 __wakeup()
'ing。但是由于 PHP 不是破坏或丢失对象的对象,因此永远不会调用析构函数。您的缓存库有可能在对象过期后从内存缓存中删除该对象并销毁该对象,从而调用 __destruct()
.. 但这取决于实现。
关于php - 在带有 OOP 的 PHP 中使用 Memcache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9388223/