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:
- Bencode as a pure PHP implementation provided by rych/bencode.
- BSON as a PHP extension provided by the
mongo
extension. - CBOR as a pure PHP implementation provided by 2tvenom/cborencode.
- Export as a PHP core functionality.
- Form as a PHP core functionality.
- IGBinary as a PHP extension provided by the
igbinary
extension -- as a drop-in replacement forPHP Serialize
. - Ini PHP implementation provided by zendframework/zend-config.
- MsgPack as a PHP extension provided by the
msgpack
extension. - Rison as a pure PHP implementation provided by deceze/Kunststube-Rison.
//Sereal
as a pure PHP implementation provided by tobyink/sereal.- Serialize as a PHP core functionality.
//Smile
as a PHP extension provided by thelibsmile
extension.- Tnetstring as a pure PHP implementation provided by phuedx/tnetstring.
- UBJSON as a pure PHP implementation provided by dizews/php-ubjson.
- YAML as a PHP extension provided by the
yaml
extension or a pure PHP implementation provided by symfony/yaml.
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(),
// ...
);
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);