Ich versuche, einen benutzerdefinierten Handler für JMS Serializer BundleBenutzerdefinierte Handler auf JMSSerializerBundle wird
class CustomHandler implements SubscribingHandlerInterface
{
public static function getSubscribingMethods()
{
return array(
array(
'direction' => GraphNavigator::DIRECTION_SERIALIZATION,
'format' => 'json',
'type' => 'integer',
'method' => 'serializeIntToJson',
),
);
}
public function serializeIntToJson(JsonSerializationVisitor $visitor, $int, array $type, Context $context)
{
die("GIVE ME SOMETHING");
}
}
Dies tut nichts zu verwenden, und nicht stirbt. So registriere ich den Handler
$serializer = SerializerBuilder::create()
->configureHandlers(function(HandlerRegistry $registry) {
$registry->registerSubscribingHandler(new MyHandler());
})
->addDefaultHandlers()
->build();
$json = $serializer->serialize($obj, 'json');
Mein Handler wird nie aufgerufen und ich kann die Serialisierungsdaten nicht manipulieren.
Haben Sie das jemals herausgefunden? Ich habe das gleiche Problem. 'getSubscribingMethods()' scheint aufgerufen zu werden, aber nicht 'serializeIntToJson' – Chris
@Chris checkout meine neue Antwort - obwohl ich eine andere Frage beantwortet habe! Bär mit mir .... –
@Chris, OK Ich habe jetzt eine andere Antwort gepostet. Ich hoffe das hilft. –