Tôi đang cố gắng sử dụng một trình xử lý tùy chỉnh cho JMS Serializer BundleTuỳ chỉnh Handler trên JMSSerializerBundle bị bỏ qua
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");
}
}
này không có gì, và không chết. Đây là cách tôi đang đăng ký xử lý
$serializer = SerializerBuilder::create()
->configureHandlers(function(HandlerRegistry $registry) {
$registry->registerSubscribingHandler(new MyHandler());
})
->addDefaultHandlers()
->build();
$json = $serializer->serialize($obj, 'json');
xử lý của tôi là không bao giờ gọi và tôi không thể thao tác dữ liệu trên serialization.
Bạn đã bao giờ tìm ra điều này chưa? Tôi đang gặp vấn đề tương tự. 'getSubscribingMethods()' dường như được gọi nhưng không phải 'serializeIntToJson' – Chris
@Chris checkout câu trả lời mới của tôi - mặc dù tôi đã trả lời một câu hỏi khác! Chịu với tôi .... –
@ Chris, OK Tôi đã đăng câu trả lời khác ngay bây giờ. Tôi hy vọng rằng sẽ giúp. –