我有一个仅用作数组容器的类。
class Container {
private $things = array();
public function addThing($thing) {
$this->things[] = $thing;
return $this;
}
public function getThings() {
return $this->things;
}
}
我会使用 JMS\Serializer 将此类序列化为仅包含它的数组。为此,我使用了一个特殊的处理函数:
use JMS\Serializer\Annotation\HandlerCallback;
class Container {
// ...
/**
* @HandlerCallback("json", direction = "serialization")
*/
public function serializeToJson() {
return $this->things;
}
}
现在如果我跑
$container = new Container();
$container->addThing('something'); // optional
print_r($serializer->serialize($container, 'json'));
我的期望是我得到
[
'something'
]
但我得到的是null
。
我已经在这里报告了这个问题,但是有人知道这个问题的解决方法吗?我应该如何解决这个问题(不使用@HandlerCallback
或其他想法),以便获得预期的结果?
谢谢!