coosos/jms-serializer-bidirectional-relation

构建映射以恢复双向关系

v1.0.0 2020-03-15 17:47 UTC

This package is auto-updated.

Last update: 2024-09-16 05:12:30 UTC


README

描述

在反序列化过程中构建映射以恢复双向关系。

此映射将添加到您的序列化内容中,键为_mapping_bidirectional_relation

安装

使用 jms/serializer(不带 symfony)

use JMS\Serializer\SerializerBuilder;
use JMS\Serializer\EventDispatcher\EventDispatcher;
use Coosos\BidirectionalRelation\EventSubscriber\MapDeserializerSubscriber;
use Coosos\BidirectionalRelation\EventSubscriber\MapSerializerSubscriber;

$builder = SerializerBuilder::create();
$builder->configureListeners(function (EventDispatcher $dispatcher) {
    $dispatcher->addSubscriber(new MapSerializerSubscriber());
    $dispatcher->addSubscriber(new MapDeserializerSubscriber());
});

$serializer = $builder->build();

使用 Symfony

# services.yml
Coosos\BidirectionalRelation\EventSubscriber\MapDeserializerSubscriber:
      tags:
        - { name: jms_serializer.event_subscriber }

Coosos\BidirectionalRelation\EventSubscriber\MapSerializerSubscriber:
      tags:
        - { name: jms_serializer.event_subscriber }

用法

注解(最小要求)

为了避免在不需要映射的对象上进行映射,您应该在注解类中添加@Coosos\BidirectionalRelation\Annotations\SerializerBidirectionalRelation(仅限根模型)。

排除映射

如果您想排除某个对象进行映射,可以在您的字段中添加@Coosos\BidirectionalRelation\Annotations\ExcludeFromMapping注解。