php - 为什么 Doctrine Cache 不保存原始 php 数组?
问题描述
我正在为我的项目使用 Doctrine Cache,并且我正在使用它的 PhpFileCache 驱动程序。 https://github.com/doctrine/cache/blob/1.10.x/lib/Doctrine/Common/Cache/PhpFileCache.php
而且我不明白为什么它没有将我的任何数据保存在原始 php 数组中?相反,它将所有这些都保存为具有反序列化功能的序列化数据。 https://github.com/doctrine/cache/blob/1.10.x/lib/Doctrine/Common/Cache/PhpFileCache.php#L87-L93
if (is_object($data) && method_exists($data, '__set_state')) {
$value = var_export($value, true);
$code = sprintf('<?php return %s;', $value);
} else {
$value = var_export(serialize($value), true);
$code = sprintf('<?php return unserialize(%s);', $value);
}
我懂了。这里有一些额外的检查,并且我的所有数据由于某种原因没有通过这个条件,但是如果我只留下这个代码:
$value = var_export($value, true);
$code = sprintf('<?php return %s;', $value);
它将从我的所有数据中将原始 php 数组保存在缓存中,并且可以正常工作。
为什么会这样?为什么这种情况对我不起作用?
解决方案
推荐阅读
- sql - 我无法从以下语句中检索确切数据
- python - 'int'对象没有属性访问多值django时出错
- angular - 如何检查:用户是否使用 angular-6-social-login npm 包登录?
- python - PyGame 不显示窗口(MacOS Catalina)
- node.js - 使用 Gmail OAuth2 的 Nodemailer - 服务帐户 - 无效请求错误
- python - 修改 Python 函数
- extjs - ExtJS 6/7 - 带有标签字段编辑器的单元格在编辑后被标记为脏,即使值不变
- python - 如果不满足条件,则删除组中的所有行
- excel - 如何将此 VBA 代码应用于两个指定的工作表?
- javascript - 如何在多个 HTML 页面之间共享 Javascript 类