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.
$ composer require brettminnie/breakfast-serializer:0.1.*
Job done, start enjoying your morning serial!
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.
- JSON
- XML
- PHP Object Notation
- YAML
- 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.