egeloen/serializer

Serializer for PHP 5.6+ supporting JSON, XML, YAML & CSV

Maintainers

👁 egeloen

Package info

github.com/egeloen/ivory-serializer

pkg:composer/egeloen/serializer

Statistics

Installs: 578 136

Dependents: 3

Suggesters: 1

Stars: 28

Open Issues: 8

1.0.0 2017-02-27 21:35 UTC

Requires

Suggests

  • ext-dom: Allow you to use the XML serialization visitor and mapping.
  • ext-json: Allow you to use the JSON serialization/deserialization visitors and mapping.
  • ext-simplexml: Allow you to use the XML deserialization visitor and mapping.
  • doctrine/annotations: Allow you to use the mapping annotations.
  • phpdocumentor/reflection: Allow you to parse PHP type more efficiently
  • symfony/event-dispatcher: Allow you to use the event dispatching system.
  • symfony/property-access: Allow you to use the Symfony accessor/mutator.
  • symfony/property-info: Allow you to use the mapping type auto discovery.
  • symfony/yaml: Allow you to use the YAML serialization/deserialization visitors and mapping.

Provides

None

Conflicts

None

Replaces

None

MIT e1b21223bb014f8ca62b30d10b33a986f2a2c334

  • Eric GELOEN <geloen.eric.woop@gmail.com>

serializer

This package is not auto-updated.

Last update: 2026-06-20 06:36:58 UTC


README

👁 Travis Build Status
👁 AppVeyor Build status
👁 Code Coverage
👁 Scrutinizer Code Quality
👁 Dependency Status

👁 Latest Stable Version
👁 Latest Unstable Version
👁 Total Downloads
👁 License

Overview

The Ivory Serializer is a PHP 5.6+ library allowing you to (de)-serialize complex data using the visitor pattern recursively on each node of the graph. It supports the CSV, JSON, XML and YAML formats. It also supports features such as exclusion strategies (groups, max depth, circular reference, version, ...), naming strategies (camel case, snake case, studly caps), automatic/explicit mapping (reflection, annotation, XML, YAML, JSON) and many others...

use Ivory\Serializer\Format;
use Ivory\Serializer\Serializer;

$stdClass = new \stdClass();
$stdClass->foo = true;
$stdClass->bar = ['foo', [123, 432.1]];

$serializer = new Serializer();

echo $serializer->serialize($stdClass, Format::JSON);
// {"foo": true,"bar": ["foo", [123, 432.1]]}

$deserialize = $serializer->deserialize($json, \stdClass::class, Format::JSON);
// $deserialize == $stdClass

Documentation

Testing

The library is fully unit tested by PHPUnit with a code coverage close to 100%. To execute the test suite, check the travis configuration.

Contribute

We love contributors! Ivory is an open source project. If you'd like to contribute, feel free to propose a PR! You can follow the CONTRIBUTING file which will explain you how to set up the project.

License

The Ivory Serializer is under the MIT license. For the full copyright and license information, please read the LICENSE file that was distributed with this source code.