byjg/serializer

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

Fund package maintenance!
byjg

Installs: 143 773

Dependents: 5

Suggesters: 0

Security: 0

Stars: 5

Watchers: 1

Forks: 1

Open Issues: 0

pkg:composer/byjg/serializer

5.0.0 2024-10-27 15:46 UTC

This package is auto-updated.

Last update: 2025-11-25 14:22:20 UTC


README

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

Component Description Link
Serialize Core component for converting objects between formats Documentation
ObjectCopy Final utility class for copying properties between objects Documentation
ObjectCopyTrait Trait implementing copyable object functionality Documentation
ObjectCopyInterface Interface for implementing copyable objects Documentation
BaseModel Abstract base class with object copying functionality Documentation
DirectTransform Basic property handler for direct transformations in ObjectCopy Documentation

Guides

Installation

composer require "byjg/serializer"

Testing

./vendor/bin/phpunit

Dependencies

flowchart TD
    byjg/serializer --> ext-json
    byjg/serializer --> symfony/yaml
    byjg/serializer --> ext-simplexml
Loading

Open source ByJG