Pular para o conteúdo principal

Multi-Format Serializer

Sponsor Build Status Opensource ByJG GitHub source GitHub license GitHub release

A powerful multi-format serialization library that converts objects, arrays, and data between JSON, XML, YAML, CSV, PHP serialize, and plain text formats with intelligent property mapping and transformation.

Features

  • Format Conversion: Transform objects to JSON, XML, YAML, or Arrays, and back again
  • Property Control: Filter, transform, and manipulate object properties during conversion
  • Object Mapping: Copy properties between different object structures with intelligent mapping
  • Property Pattern Matching: Customize how properties are matched and transformed
  • Attribute Support: Process PHP attributes during serialization and deserialization
  • Type Safety: Maintain data types during transformations

Quick Examples

Convert an object to JSON

$object = new MyClass();
$json = \ByJG\Serializer\Serialize::from($object)
->toJson();

Copy properties between objects

$source = ["id" => 1, "name" => "John"];
$target = new User();
\ByJG\Serializer\ObjectCopy::copy($source, $target);

Create a copyable object

class User implements \ByJG\Serializer\ObjectCopyInterface
{
use \ByJG\Serializer\ObjectCopyTrait;

public $id;
public $name;

// Automatically inherits copyFrom() and copyTo() methods
}

Documentation

Core Components

ComponentDescriptionLink
SerializeCore component for converting objects between formatsDocumentation
ObjectCopyFinal utility class for copying properties between objectsDocumentation
ObjectCopyTraitTrait implementing copyable object functionalityDocumentation
ObjectCopyInterfaceInterface for implementing copyable objectsDocumentation
BaseModelAbstract base class with object copying functionalityDocumentation
DirectTransformBasic property handler for direct transformations in ObjectCopyDocumentation

Guides

Installation

composer require "byjg/serializer"

Testing

./vendor/bin/phpunit

Dependencies


Open source ByJG