【发布时间】:2022-01-12 16:38:19
【问题描述】:
我正在尝试缓存 SOAP 响应(具有多个子对象的类对象)。
假设我的响应对象是$responseObject,我用$this->io->save(serialize($responseObject), '/tmp/response.dat');(伪代码)将它保存到一个名为/tmp/response.dat 的文件中。
稍后尝试通过$responseObject = unserialize($this->io->read('/tmp/response.dat')); 获得该响应时(在新请求中)我得到__PHP_Incomplete_Class 即使自动加载所需的类(我正在使用 Magento,因此它在尝试阅读之前很久就自动自动加载文件中的对象),我什至尝试遍历 SOAP 类文件夹和 require()d 以 100% 确保所有类都被包含在内。
A $responseObject = unserialize(serialize($responseObject)); 完美运行,如果 SOAP 调用实际上在之前执行,并且文件中的序列化字符串和调用之后的序列化字符串完全相同 - 它只是仅尝试从文件中反序列化时不起作用,即使我测试迭代地包含所有可能的类(并且存在自动加载器)。
谁能告诉我这里有什么问题?
【问题讨论】:
标签: php serialization magento2 php-7.4