シリアル化されたフィールドの出力を変更して、 symfony2のいくつかのパターン(ユーザー メッセージなど)を置き換える、単純で愚かな解決策を探しています。
残念ながら、カスタム De-/Serialization Handlerを使用すると、すべてのポリシーが破棄されます。シリアル化されたすべてのデータを手動で返す必要があります。
モデルクラス:
//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!
}
}