首页 > 解决方案 > Symfony 缓存不适用于类/对象

问题描述

我使用一些 php 库,并生成类的元素

 $elnew = new LibClass();

我想将此变量保存到缓存中。如果我这样做

$elem = $cache->getItem($ig_name);
if (!$elem->isHit()) {
  $elem->set($elnew);
  $cache->save($ig);
}

$elem->isHit()总是假的。我检查了缓存如何与字符串一起使用 - 一切正常。我也不能序列化/反序列化这个对象,因为它说

不允许序列化“闭包”

而且没办法修改LibClass

如何保存$elnew到缓存?symfony 组件的任何变体?或者也许其他库可以帮助我?

标签: phpsymfonyobjectcachingserialization

解决方案


不允许序列化“闭包”

您可以使用PHP SuperClosure 库来摆脱这种情况。

您也可以尝试其他内存存储,例如RedisMemcache来缓存您的对象。请参阅这个已解决的 stackoverflow 问题


推荐阅读