chubbyphp-deserialization
Description
A simple deserialization.
Requirements
- php: ^7.2
- psr/http-message: ^1.0.1
- psr/log: ^1.1
Suggest
- chubbyphp/chubbyphp-container: ^1.0
- pimple/pimple: ^3.2.3
- psr/container: ^1.0
- symfony/dependency-injection: ^2.8.50|^3.4.26|^4.2.7|^5.0 (symfony integration)
- symfony/yaml: ^2.8.50|^3.4.26|^4.2.7|^5.0 (application/x-yaml support)
Installation
Through Composer as chubbyphp/chubbyphp-deserialization.
composer require chubbyphp/chubbyphp-deserialization "^2.19"Usage
Accessor
Decoder
Type Decoder
Denormalizer
Field Denormalizer
Relation Field Denormalizer
- EmbedManyFieldDenormalizer
- EmbedOneFieldDenormalizer
- ReferenceManyFieldDenormalizer
- ReferenceOneFieldDenormalizer
Denormalizer Context
DenormalizerObjectMappingRegistry
Deserializer
<?php
use Chubbyphp\Deserialization\Decoder\Decoder;
use Chubbyphp\Deserialization\Decoder\JsonTypeDecoder;
use Chubbyphp\Deserialization\Decoder\JsonxTypeDecoder;
use Chubbyphp\Deserialization\Decoder\UrlEncodedTypeDecoder;
use Chubbyphp\Deserialization\Decoder\XmlTypeDecoder;
use Chubbyphp\Deserialization\Decoder\YamlTypeDecoder;
use Chubbyphp\Deserialization\Denormalizer\Denormalizer;
use Chubbyphp\Deserialization\Denormalizer\DenormalizerObjectMappingRegistry;
use Chubbyphp\Deserialization\Deserializer;
use MyProject\Deserialization\ModelMapping;
use MyProject\Model\Model;
$logger = ...;
$deserializer = new Deserializer(
new Decoder([
new JsonTypeDecoder(),
new JsonxTypeDecoder(),
new UrlEncodedTypeDecoder(),
new XmlTypeDecoder(),
new YamlTypeDecoder()
]),
new Denormalizer(
new DenormalizerObjectMappingRegistry([
new ModelMapping()
]),
$logger
)
);
$model = $deserializer->deserialize(
Model::class,
'{"name": "php"}',
'application/json'
);
echo $model->getName();
// 'php'
print_r($deserializer->getContentTypes());
//[
// 'application/json',
// 'application/x-jsonx',
// 'application/x-www-form-urlencoded',
// 'application/xml',
// 'application/x-yaml'
//]
print_r($deserializer->decode(
'{"name": "php"}',
'application/json'
));
// ['name' => 'php']
$model = $denormalizer->denormalize(
Model::class,
['name' => 'php']
);
echo $model->getName();
// 'php'Mapping
DenormalizationFieldMapping
DenormalizationObjectMapping
LazyDenormalizationObjectMapping
ServiceFactory
chubbyphp-container
chubbyphp-laminas-config-factory
ServiceProvider
Copyright
Dominik Zogg 2020


