jojo1981/jms-serializer-handlers
最新稳定版本:6.1.0
Composer 安装命令:
composer require jojo1981/jms-serializer-handlers
包简介
Handlers for the JMS Serializer
README 文档
README
Author: Joost Nijhuis <jnijhuis81@gmail.com>
This library is an extension for the jms/serializer package and contains custom handlers which add support to work with some 3th party libraries. More information about JMS Serializer Handlers can be found here.
This library adds support for:
- instances of
Jojo1981\TypedCollection\Collectionfrom the packagejojo1981/typed-collection.
Installation
Library
git clone https://github.com/jojo1981/jms-serializer-handlers.git
Composer
composer require jojo1981/jms-serializer-handlers
Usage
<?php use JMS\Serializer\Accessor\DefaultAccessorStrategy; use JMS\Serializer\Construction\UnserializeObjectConstructor; use JMS\Serializer\Handler\HandlerRegistry; use JMS\Serializer\Naming\CamelCaseNamingStrategy; use JMS\Serializer\Naming\SerializedNameAnnotationStrategy; use JMS\Serializer\SerializerBuilder; use Jojo1981\JmsSerializerHandlers\TypedCollectionAccessorStrategyDecorator; use Jojo1981\JmsSerializerHandlers\TypedCollectionObjectConstructorDecorator; use Jojo1981\JmsSerializerHandlers\TypedCollectionSerializationHandler; use Jojo1981\JmsSerializerHandlers\TypedSetSerializationHandler; use Jojo1981\JmsSerializerHandlers\UnionSerializationHandler; require 'vendor/autoload.php'; $propertyNamingStrategy = new SerializedNameAnnotationStrategy(new CamelCaseNamingStrategy()); $accessorStrategy = new TypedCollectionAccessorStrategyDecorator(new DefaultAccessorStrategy()); $serializer = (new SerializerBuilder()) ->setDebug(true) ->setCacheDir(__DIR__ . '/var/cache/serializer') ->setAccessorStrategy($accessorStrategy) ->setPropertyNamingStrategy($propertyNamingStrategy) ->addDefaultHandlers() ->configureHandlers(static function (HandlerRegistry $handlerRegistry): void { $handlerRegistry->registerSubscribingHandler(new TypedCollectionSerializationHandler()); $handlerRegistry->registerSubscribingHandler(new TypedSetSerializationHandler()); $handlerRegistry->registerSubscribingHandler(new UnionSerializationHandler()); }) ->setObjectConstructor(new TypedCollectionObjectConstructorDecorator(new UnserializeObjectConstructor())) ->build();
统计信息
- 总下载量: 15.96k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 1
其他信息
- 授权协议: MIT
- 更新时间: 2026-01-04