7

Tôi cố gắng để làm theo các tài liệu liên quan, ở đây:
http://jmsyst.com/libs/serializer/master/configuration
đây
http://jmsyst.com/libs/serializer/master/handlers
và đây
http://jmsyst.com/bundles/JMSSerializerBundle/master/cookbook/custom_handlersTạo một handler JMS Serializer trong symfony2

tôi bị mắc kẹt khi cố gắng để có được những người thợ xây đối tượng trong symfony2 (xem liên kết thứ hai cho đối tượng này). Dịch vụ này là một serializer đã được xây dựng. Tôi nên instanciate xử lý của riêng tôi?

Cập nhật:
Tôi đang điều tra một giải pháp khả thi:
$builder = \JMS\Serializer\SerializerBuilder::create();
hoặc
$builder = new \JMS\Serializer\SerializerBuilder();
có lẽ đây sẽ làm việc nhưng nó sẽ được tốt đẹp để cho các serializer đã instanciated tận dụng xử lý của tôi. Để nhận dịch vụ bộ nối tiếp trong bộ điều khiển: $serializer = $this->get('jms.serializer');

Trả lời

13

Giải pháp là tạo một dịch vụ với đúng thẻ.

datetimezone_handler: 
    class:  MyVendor\MyBundle\Serializer\Handler\DateTimeZoneHandler 
    tags: 
     - { name: jms_serializer.subscribing_handler } 
+0

bạn lưu ngày của tôi hai lần trong tháng này. Tôi sử dụng để serialize FosUser thực thể, cho thực thể "loại" cần bởi "My \\ UserBundle \\ Entity \\ Người dùng" –

+0

Điều này không làm việc cho tôi. Tôi có nó thiết lập như thế này và nó vẫn không đăng ký xử lý. Nó không bao giờ được đưa vào phương thức getSubscribingMethods() trên trình xử lý. – Nicolas

Các vấn đề liên quan