Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tsantos84/serializer
A PHP serialization component focused on performance
https://github.com/tsantos84/serializer
data-transformation php-library php7 serialization-library
Last synced: about 11 hours ago
JSON representation
A PHP serialization component focused on performance
- Host: GitHub
- URL: https://github.com/tsantos84/serializer
- Owner: tsantos84
- License: mit
- Created: 2017-06-21T21:30:14.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2020-05-28T03:51:56.000Z (over 4 years ago)
- Last Synced: 2024-12-18T00:51:56.809Z (6 days ago)
- Topics: data-transformation, php-library, php7, serialization-library
- Language: PHP
- Homepage: https://tsantos-serializer.readthedocs.io/
- Size: 561 KB
- Stars: 27
- Watchers: 5
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# TSantos Serializer
[![Build Status](https://travis-ci.org/tsantos84/serializer.svg?branch=master)](https://travis-ci.org/tsantos84/serializer) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=tsantos84_serializer&metric=alert_status)](https://sonarcloud.io/dashboard?id=tsantos84_serializer) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=tsantos84_serializer&metric=coverage)](https://sonarcloud.io/dashboard?id=tsantos84_serializer) [![Latest Stable Version](https://poser.pugx.org/tsantos/serializer/version)](https://packagist.org/packages/tsantos/serializer) [![Total Downloads](https://poser.pugx.org/tsantos/serializer/downloads)](https://packagist.org/packages/tsantos/serializer) [![Latest Unstable Version](https://poser.pugx.org/tsantos/serializer/v/unstable)](//packagist.org/packages/tsantos/serializer) [![License](https://poser.pugx.org/tsantos/serializer/license)](https://packagist.org/packages/tsantos/serializer) [![composer.lock available](https://poser.pugx.org/tsantos/serializer/composerlock)](https://packagist.org/packages/tsantos/serializer)TSantos Serializer is a library to encode/decode PHP objects to some string representation. Because of its exclusive
serialization strategy, this library is the [faster serialization component](https://github.com/tsantos84/serializer-benchmark) to PHP.## Instalation
You can install this library through composer:
`composer require tsantos/serializer`
or just add `tsantos/serializer` to your composer file and then
`composer update`
## Usage
The best way to get start with `TSantos Serializer` is by using the builder.
With a few configurations you are ready to serialize your data:```php
use TSantos\Serializer\SerializerBuilder;
class Post {
public $title;
public $summary;
}$serializer = (new SerializerBuilder())
->setHydratorDir('/path/to/generated/hydrators')
->build();$person = new Post('Post title', 'Post summary');
echo $serializer->serialize($person); // {"title":"Post title", "summary":"Post summary"}
```This is the simplest example to get you started with TSantos Serializer. There are
a lot of capabilities which you should know in order to master your serializer instance
and take advantage of all library's power.## Features
Main features currently supported by TSantos Serializer:
* No need to mapping classes for simple use cases ...
* ... but supports `YAML`, `XML` and `Annotations` mapping formats for advanced mapping
* Supports `JSON` encoders
* (De-)serializes objects of any depth
* Virtual properties
* Properties grouping
* Event listeners to hook into serialization operations
* (De-)serializes interfaces and abstract classes## Documentation
Please refer to the [documentation page](https://tsantos-serializer.readthedocs.io) to see all allowed configurations.
## Licence
MIT
## Tests
`vendor/bin/phpunit -c phpunit.xml.dist`