brettminnie / breakfast-serializer
Library for (de-)serializing data of any complexity to JSON
Requires
- php: >=5.5
- symfony/yaml: ~3.0@dev
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/phpunit: 4.7.*
This package is not auto-updated.
Last update: 2024-12-21 18:59:18 UTC
README
A replacement for the other well known serializer, initially we were aiming for backwards compatibility, however it seemed more appropriate to develop a lightweight alternative. We are forgoing the depth of features now to offer something that is easy to configure and works well without any configuration.
Installation
$ composer require brettminnie/breakfast-serializer:0.1.*
Job done, start enjoying your morning serial!
Configuration
Out the box will do a full depth/breadth recursion and serialize to JSON format, no config is required. It will always
serialize with a variable called className
attached to the object. This is a fully fledged namespace and is required
to deserialize. If you want to deserialize from JSON data that is missing this variable it needs to be injected into the
object.
Supported Serialization Formats
- JSON
- XML
- PHP Object Notation
- YAML
Features
- Simple limiting of traversal depth
- Mapping of properties to alternate names and back again
- Excluding of properties from serialization and ignoring them on deserialization
- Simple YAML config format (Yay no slow php annotations!)
Quick and Dirty Example
// To retrieve the json representation json of an object $jsonData = BDBStudios\BreakfastSerializer\SerializerFactory::getSerializer() ->serialize($myClass); // To unserialize $myClass = BDBStudios\BreakfastSerializer\SerializerFactory::getSerializer() ->deserialize($jsonData); //To serialize an object with a limited depth recursion (aka only some of it) $jsonData = BDBStudios\BreakfastSerializer\SerializerFactory::getSerializer( BDBStudios\BreakfastSerializer\IsSerializable::FORMAT_JSON, 2 ) ->serialize($myClass);
Further examples in the documentation directory.