duncan3dc/serial

Consistent serialization helpers for multiple backends

2.0.0 2021-07-24 16:50 UTC

This package is auto-updated.

Last update: 2024-12-25 00:18:43 UTC


README

A collection of PHP serialization helpers with a consistent interface for each.

release build](https://github.com/duncan3dc/serial/actions?query=branch%3Amaster+workflow%3Abuildcheck) coverage

Available Classes

  • Json (using the native json_* functions)
  • Yaml (using the Symfony Yaml component)
  • Php (using the native serialize/unserialize functions)

Interface

All serialization classes implement the interface duncan3dc\Serial\SerialInterface

Examples

Convert array data to string format

use duncan3dc\Serial\Json;
$data = BusinessLogic::getDataAsArray();
$json = Json::encode($data);

Convert string formatted data to an array

use duncan3dc\Serial\Yaml;
$yaml = Api::getYamlResponse($request);
$response = Yaml::decode($yaml);

Convient methods to serialize and store data on disk

use duncan3dc\Serial\Json;
$filename = "/tmp/file.json";
$data = BusinessLogic::getDataAsArray();
Json::encodeToFile($filename, $data);

Retrieve previously stored data from disk

use duncan3dc\Serial\Json;
$filename = "/tmp/file.json";
$data = Json::decodeFromFile($filename);

ArrayObject

The decode() and decodeFromFile() methods return a custom ArrayObject.

If you need a plain array you can get one like so:

$array = Json::decode($jsonString)->asArray();

There are also helper methods to convert to any of the available serialization formats.

$data = Json::decode($jsonString);
$yaml = $data->asYaml();
$json = $data->asJson();
$php = $data->asPhp();