10/09
2017
Wallogit.com
2017 © Pedro Peláez
Add Serializer to your composer.json file., (*2)
{
"require": {
"itav/serializer": "~1.2"
}
}
or simply fire up on terminal:, (*3)
composer require itav/serializer
Then at the top of your PHP script require the autoloader:, (*4)
require 'vendor/autoload.php';
Php Serializer allows you to switch between:, (*6)
<?php
use Itav\Component\Serializer\Serializer;
require_once '../vendor/autoload.php';
$serializer = new Serializer();
class Car
{
private $model = 'SomeModel';
private $color = 'red';
/**
* @var Part[]
*/
private $parts;
public function setParts($parts)
{
$this->parts = $parts;
}
}
class Part
{
private $number = 123;
private $name = 'engine';
}
$car = new Car();
$car->setParts([new Part(), new Part(), new Part()]);
$array = $serializer->normalize($car);
$json = json_encode($array);
and also in reverse direction:, (*7)
<?php
$json = <<<JSON
{
"model":"MyModel",
"color":"red",
"parts":[
{
"number":123,
"name":"engine"
},
{
"number":124,
"name":"lamp"
},
{
"number":125,
"name":"wheel"
}
]
}
JSON;
//$array = json_decode($json, true);
$array = [
'model' => 'MyModel',
'color' => 'red',
'parts' => [
0 => [
'number' => 123,
'name' => 'engine'
],
1 => [
'number' => 124,
'name' => 'lamp'
],
2 => [
'number' => 125,
'name' => 'wheel'
],
]
];
$car = $serializer->denormalize($array, Car::class);
## How to Contribute write to me: sylwester7799@gmail.com, (*8)