php - Symfony 缓存不适用于类/对象
问题描述
我使用一些 php 库,并生成类的元素
$elnew = new LibClass();
我想将此变量保存到缓存中。如果我这样做
$elem = $cache->getItem($ig_name);
if (!$elem->isHit()) {
$elem->set($elnew);
$cache->save($ig);
}
$elem->isHit()
总是假的。我检查了缓存如何与字符串一起使用 - 一切正常。我也不能序列化/反序列化这个对象,因为它说
不允许序列化“闭包”
而且没办法修改LibClass
如何保存$elnew
到缓存?symfony 组件的任何变体?或者也许其他库可以帮助我?
解决方案
不允许序列化“闭包”
您可以使用PHP SuperClosure 库来摆脱这种情况。
您也可以尝试其他内存存储,例如Redis或Memcache来缓存您的对象。请参阅这个已解决的 stackoverflow 问题。
推荐阅读
- excel - 代码在 office 2010 和 2016 中有效,但在 office 2007 中无效
- jhipster - jhipster,api-first 方法,生成的 api 现在显示在 swagger-ui 中
- c# - 如何在 C# Visual Studio 中获取没有 html 标签的 email.Body?
- xamarin.forms - 图标显示在 FlyoutItem 中,但不在底部的 Tabbar 中
- arrays - 在 C 中,如何“直接”将结构复制到数组成员?
- arrays - Ansible 子元素(2.3 版)
- python - 如何使用 VCS 中的 pip 将包强制安装到站点包
- python - 重组 Pyspark 数据框:使用行元素创建新列
- pytorch - 如何更改transformers.bert的最大序列长度?
- php - 当我从 ajax 发送数据时,如何在 jQuery 中使用 DataTables 对列进行排序?