1. Go to this page and download the library: Download spomky-labs/cbor-bundle library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use Symfony\Component\Serializer\SerializerInterface;
class MyController
{
public function __construct(
private SerializerInterface $serializer
) {}
public function encodeAction(): Response
{
$data = [
'name' => 'John Doe',
'age' => 30,
'active' => true,
'tags' => ['developer', 'symfony']
];
// Serialize to CBOR format
$cborData = $this->serializer->serialize($data, 'cbor');
return new Response($cborData, 200, [
'Content-Type' => 'application/cbor'
]);
}
}
public function decodeAction(Request $request): Response
{
$cborData = $request->getContent();
// Deserialize from CBOR format
$data = $this->serializer->deserialize($cborData, 'array', 'cbor');
return $this->json($data);
}
use App\Entity\Person;
class PersonController
{
public function serializeObject(Person $person): string
{
// Serialize object to CBOR
return $this->serializer->serialize($person, 'cbor');
}
public function deserializeObject(string $cborData): Person
{
// Deserialize CBOR back to object
return $this->serializer->deserialize($cborData, Person::class, 'cbor');
}
}
// Use single precision floats (smaller size, less precision)
$cbor = $serializer->serialize($data, 'cbor', [
'cbor_single_precision_float' => true
]);
// Use indefinite length encoding for arrays
$cbor = $serializer->serialize([1, 2, 3], 'cbor', [
'cbor_indefinite_list' => true
]);
// Use indefinite length encoding for maps
$cbor = $serializer->serialize(['a' => 1], 'cbor', [
'cbor_indefinite_map' => true
]);
// Use indefinite length for text strings
$cbor = $serializer->serialize('Hello', 'cbor', [
'cbor_indefinite_text_string' => true
]);
// Backed enums are encoded as their backing value
enum Status: string
{
case ACTIVE = 'active';
case INACTIVE = 'inactive';
}
$cbor = $serializer->serialize(Status::ACTIVE, 'cbor');
// Encodes as "active"
// Unit enums are encoded as their name
enum Color
{
case RED;
case GREEN;
}
$cbor = $serializer->serialize(Color::RED, 'cbor');
// Encodes as "RED"
use SpomkyLabs\CborBundle\CBOREncoder;
use SpomkyLabs\CborBundle\CBORDecoder;
class MyService
{
public function __construct(
private CBOREncoder $encoder,
private CBORDecoder $decoder
) {}
}
class MyService
{
public function __construct(
#[Autowire(service: 'cbor.encoder')]
private $encoder,
#[Autowire(service: 'cbor.decoder')]
private $decoder
) {}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.