我正在寻找一个简单而愚蠢的解决方案,以更改序列化字段的输出以替换symfony2中的几种模式(用于用户消息等)。
不幸的是,自定义反/序列化处理程序的使用破坏了我所有的策略。我被迫手动返回所有序列化数据。
模型类:
//src/Acme/DemoBundle/Model/Tiger
class Tiger implements WildAnimalInterface
{
/**
* @var integer
* @Expose
*/
protected $id;
/**
* @var string
* @Expose
* @Type('user_message')
*/
protected $text;
/**
* @var integer
* @Exclude
*/
protected $dangerLevel;
...
}
处理程序类:
class UserMessageHandler
{
...
public function serialize(VisitorInterface $visitor,
WildAnimalInterface $wildAnimal,
$type,
$visited)
{
// Hello {{username}}, I'm a Tiger ROOARRR!
$text = $wildAnimal->getText();
// (my custom replacement logic, it works already)
// Hello Joe Schmoe, I'm a Tiger ROOARRR!
return $text; // < Overwrites all rules and returns only text!
}
}