opensoft / opensoft-simple-serializer-bundle
Symfony bundle for a simple-serializer library
Installs: 13 292
Dependents: 0
Suggesters: 0
Security: 0
Stars: 9
Watchers: 7
Forks: 3
Open Issues: 0
Type:symfony-bundle
Requires
- php: ^5.5.9|>=7.0.8
- opensoft/simple-serializer: >=1.0.0
- symfony/framework-bundle: ^3.3
This package is not auto-updated.
Last update: 2024-10-26 14:10:07 UTC
README
Introduction
OpensoftSimpleSerializerBundle is wrapper for simple-serializer library.
Installation
Using Composer (recommended)
To install OpensoftSimpleSerializerBundle with Composer just add the following to your composer.json file:
// composer.json { // ... require: { // ... "opensoft/opensoft-simple-serializer-bundle": "1.0.*" } }
Then, you can install the new dependencies by running Composer’s update command from the directory where your composer.json file is located:
$ php composer.phar update
Composer will automatically download all required files, and install them for you. All that is left to do is to update your AppKernel.php file, and register the new bundle:
<?php // in AppKernel::registerBundles() $bundles = array( // ... new Opensoft\Bundle\SimpleSerializerBundle\OpensoftSimpleSerializerBundle($this), // ... );
Using the deps file (Symfony 2.0.x)
Update your deps file
### SimpleSerializer library [simple-serializer] git=git://github.com/opensoft/simple-serializer.git ### SimpleSerializer bundle [OpensoftSimpleSerializerBundle] git=git://github.com/opensoft/OpensoftSimpleSerializerBundle.git target=bundles/Opensoft/Bundle/SimpleSerializerBundle
Update your AppKernel.php file, and register the new bundle:
// in AppKernel::registerBundles() $bundles = array( // ... new Opensoft\Bundle\SimpleSerializerBundle\OpensoftSimpleSerializerBundle($this), // ... );
Make sure that you also register the namespaces with the autoloader:
<?php // app/autoload.php $loader->registerNamespaces(array( // ... 'Opensoft' => __DIR__.'/../vendor/bundles', 'Opensoft\\SimpleSerializer' => __DIR__.'/../vendor/simple-serializer/src', // ... ));
Now use the vendors script to clone the newly added repositories into your project:
$ php bin/vendors install
Configuration
OpensoftSimpleSerializerBundle requires no initial configuration to get you started.
Below you find a reference of all configuration options with their default values:
# config.yml opensoft_simple_serializer: metadata: cache: file debug: "%kernel.debug%" file_cache: dir: "%kernel.cache_dir%/simple-serializer" # Using auto-detection, the mapping files for each bundle will be # expected in the Resources/config/simple-serializer directory. # # Example: # class: My\FooBundle\Entity\User # expected path: @MyFooBundle/Resources/config/simple-serializer/Entity.User.yml auto_detection: true # if you don't want to use auto-detection, you can also define the # namespace prefix and the corresponding directory explicitly directories: any-name: namespace_prefix: "My\\FooBundle" path: "@MyFooBundle/Resources/config/simple-serializer" another-name: namespace_prefix: "My\\BarBundle" path: "@MyBarBundle/Resources/config/simple-serializer"
Usage
Firstly, you could create mapping files for your objects.
# MyBundle\Resources\config\serializer\ClassName.yml Fully\Qualified\ClassName: properties: some-property: expose: false type: string serialized_name: foo since_version: 1.0 until_version: 2.0 groups: ['get','patch']
Below you find a reference of all configuration options for property:
- expose
- true
- false (default)
- type
- integer
- boolean
- double
- string
- array
- T - fully qualified class name
- array<T>
- DateTime (default format is ISO8601)
- DateTime<format>
- format could be name of DateTime constant (COOKIE, ISO8601) or string
- serialized_name
- default value is equal name property
- since_version
- string
- until_version
- string
- groups
- array
Then you could use "simple_serializer" service.
<?php //serialization $serializer = $container->get('simple_serializer'); $string = $serializer->serialize($object); //Serialize array of the objects $string = $serializer->serialize(array($object)); //Serialize specific groups $serializer->setGroups(array('get')); $string = $serializer->serialize($object); //Serialize specific version $serializer->setVersion('1.0'); $string = $serializer->serialize($object); //deserialization $object = $serializer->unserialize($jsonData, $object); //Unserialize array of the objects $objects = $serializer->unserialize($jsonData, array($object)); //Unserialize specific groups $serializer->setGroups(array('get')); $object = $serializer->unserialize($jsonData, $object); //Unserialize specific version $serializer->setVersion('1.0'); $object = $serializer->unserialize($jsonData, $object); //Strict unserialize mode $serializer->setStrictUnserializeMode(2); $object = $serializer->unserialize($jsonData, $object); //Medium Strict unserialize mode $serializer->setStrictUnserializeMode(1); $object = $serializer->unserialize($jsonData, $object); //Non-Strict unserialize mode $serializer->setStrictUnserializeMode(0); $object = $serializer->unserialize($jsonData, $object);