sidus/base-serializer-bundle

Symfony 3 & 4 的额外序列化功能

v1.0.3 2020-01-21 09:32 UTC

This package is auto-updated.

Last update: 2024-09-21 20:28:14 UTC


README

序列化器

嵌套属性反序列化器可以非常有用,它可以将API响应反序列化为适当的模型实体,无需任何setter,并且可以根据非常简单的注解反序列化嵌套数据和嵌套实体集合。

此反序列化器仅适用于带有@NestedPropertyDenormalizer注解的PHP类。

配置

配置示例

<?php

namespace FooBar\Model;

use Sidus\BaseSerializerBundle\Serializer\Annotation\NestedClass;
use Sidus\BaseSerializerBundle\Serializer\Annotation\NestedPropertyDenormalizer;

/**
 * @NestedPropertyDenormalizer()
 */
class Book
{
    /** @var string */
    protected $id;
    
    /**
     * @var \DateTimeInterface|null
     *
     * @NestedClass(targetClass="DateTime")
     */
    protected $publicationDate;
    
    /**
     * @var Author|null
     *
     * @NestedClass(targetClass="FooBar\Model\Author")
     */
    protected $author;

    /**
     * @var Edition[]
     *
     * @NestedClass(targetClass="FooBar\Model\Edition", multiple=true)
     */
    protected $editions = [];
    
    // Here be getters (no setters needed)
}

请注意,@NestedClass注解可以针对任何类。

额外服务

此捆绑包还提供了一些其他服务,可以被其他捆绑包使用。由于它们仅在自定义反序列化器中需要,因此未提供实现细节。