8

ここで関連ドキュメントをフォローしようとしました:
http://jmsyst.com/libs/serializer/master/configuration
ここ
http://jmsyst.com/libs/serializer/master/handlers
そしてここ
http://jmsyst.com /bundles/JMSSerializerBundle/master/cookbook/custom_handlers

symfony2 でビルダー オブジェクトを取得しようとしたときに行き詰まりました (このオブジェクトの 2 番目のリンクを参照してください)。サービスは、既にビルドされているシリアライザーです。自分のハンドラーをどこでインスタンス化する必要がありますか?

更新:
考えられる解決策の 1 つを調査しています:
$builder = \JMS\Serializer\SerializerBuilder::create();
または
$builder = new \JMS\Serializer\SerializerBuilder();
、これでうまくいくかもしれませんが、既にインスタンス化されたシリアライザーが私のハンドラーを利用できるようにするとよいでしょう。コントローラーでシリアライザー サービスを取得するには:$serializer = $this->get('jms.serializer');

4

1 に答える 1

15

解決策は、適切なタグを使用してサービスを作成することです。

datetimezone_handler:
    class:     MyVendor\MyBundle\Serializer\Handler\DateTimeZoneHandler
    tags:
        - { name: jms_serializer.subscribing_handler }
于 2014-03-15T10:04:27.507 に答える