Extra Serialization formats for symfony
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
DependencyInjection
Resources/config
Serializer
Tests/Serializer
.gitignore
.php_cs
LICENSE.md
MSSerializerBundle.php
README.md
composer.json
phpunit.xml.dist

README.md

Serializer

Contents

A recursive normalizer that uses symfony/property-info to deduce data types of elements in an object graph.

A type hinted normalizer that retains type information about the object graph being normalized.

A collection of (symfony compliant) encoders for the following formats:

Installation

Choose one ore more encoding formats from the suggestions in composer.json. If the chosen format is described below as PHP extension you will have to install said extension. If it is a pure PHP implementation you will be able to require it via composer.

composer require mihai-stancu/serializer
composer require your-chosen/encoder-package
// in AppKernel::registerBundles()
$bundles = array(
    // ...
    new MS\SerializerBundle\MSSerializerBundle(),
    // ...
);

Usage

After having installed the bundle and at least one of the suggested encoding formats, that encoding format will be registered as a serialization format for the symfony/serializer.

$encoderName = array_rand(
    array(
        'bencode', 
        'bson', 
        'cbor',
        'export',
        'form',
        'igbinary',
        'ini',
        'msgpack',
        'rison',
        //'sereal',
        'serial',
        //'smile',
        'tnetstring',
        'ubjson',
        'yaml',
    )
);

$serializer = $container->get('serializer');
$string = $serializer->serialize($data, $encoderName);
$data = $serializer->unserialize($data, $class, $encoderName);