sbooker/doctrine-object-mapping

Doctrine 对象类型映射支持

1.1.0 2022-04-27 14:18 UTC

This package is auto-updated.

Last update: 2024-09-27 20:20:51 UTC


README

Latest Version Software License PHP Version Total Downloads

将不可变对象和对象列表映射到单个 JSON 字段。

安装

请确保已全局安装 Composer,具体请参考 Composer 文档中的安装章节

不使用 Symfony 的应用程序

步骤 1:下载库

$ composer require sbooker/doctrine-object-mapping 

步骤 2:创建并注册 Doctrine 类型

class Concrete { /* ... */ }

class ConcreteType extends \Sbooker\DoctrineObjectMapping\ObjectType 
{
    protected function getObjectClass(): string
    {
        return Concrete::class;
    }

    public function getName()
    {
        return 'concrete';
    }
}

\Doctrine\DBAL\Types\Type::addType('concrete', ConcreteType::class);

// Create or get normalizer
$normalizer = new \Symfony\Component\Serializer\Normalizer\ObjectNormalizer(/*...*/);

// Set serializer to type on boot application
/** @var \Sbooker\DoctrineObjectMapping\NormalizableType $type */
$type = \Doctrine\DBAL\Types\Type::getType('concrete');
$type->setNormalizer($normalizer);
$type->setDenormalizer($normalizer);

使用 Symfony 的应用程序

使用 sbooker/doctrine-object-mapping-bundle

许可证

请参阅LICENSE文件。