https://github.com/opensoft/opensoftsimpleserializerbundle
Simple PHP Serializer bundle for Symfony 2.*
https://github.com/opensoft/opensoftsimpleserializerbundle
Last synced: 4 months ago
JSON representation
Simple PHP Serializer bundle for Symfony 2.*
- Host: GitHub
- URL: https://github.com/opensoft/opensoftsimpleserializerbundle
- Owner: opensoft
- Created: 2012-08-29T06:06:53.000Z (almost 14 years ago)
- Default Branch: master
- Last Pushed: 2018-01-23T16:06:25.000Z (over 8 years ago)
- Last Synced: 2025-03-29T07:51:25.476Z (about 1 year ago)
- Language: PHP
- Size: 16.6 KB
- Stars: 9
- Watchers: 6
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
OpensoftSimpleSerializerBundle
==============================
Introduction
------------
OpensoftSimpleSerializerBundle is wrapper for simple-serializer library.
[](http://travis-ci.org/opensoft/OpensoftSimpleSerializerBundle)
[](https://packagist.org/packages/opensoft/opensoft-simple-serializer-bundle)
[](https://packagist.org/packages/opensoft/opensoft-simple-serializer-bundle)
[](https://scrutinizer-ci.com/g/opensoft/OpensoftSimpleSerializerBundle/)
Installation
------------
Using Composer (recommended)
----------------------------
To install OpensoftSimpleSerializerBundle with Composer just add the following to your composer.json file:
```yml
// 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:
```bash
$ 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
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:
```bash
$ 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:
```yml
# 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.
```yml
# 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\
* DateTime (default format is ISO8601)
* DateTime\
* 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
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);
```