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
Maintainers
Fund package maintenance!
6.0.1
2026-02-28 04:05 UTC
Requires
- php: >=8.3 <8.6
- ext-json: *
- ext-simplexml: *
- symfony/yaml: > 4
Requires (Dev)
- phpunit/phpunit: ^10.5|^11.5
- vimeo/psalm: ^5.9|^6.13
Suggests
- ext-curl: *
Provides
None
Conflicts
None
Replaces
None
MIT 10db742f5e2fcbf8918d85b3217f3d928b2fa6a1
README
| sidebar_key | serializer | ||
|---|---|---|---|
| tags |
|
Multi-Format 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.
👁 Sponsor
👁 Build Status
👁 Opensource ByJG
👁 GitHub source
👁 GitHub license
👁 GitHub release
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
- Formatters - JSON, XML, YAML, CSV, and Plain Text output formatting
- Property Handlers - Transform property names and values during copying
- Advanced Usage - Performance optimization, security, and complex patterns
- Integration Examples - Framework integration (Symfony, Laravel, Doctrine, etc.)
- ByJG Ecosystem - How Serializer integrates with other ByJG components
- Troubleshooting - Common issues and solutions
Installation
composer require "byjg/serializer"
Testing
./vendor/bin/phpunit
Dependencies
flowchart TD byjg/serializer --> ext-json byjg/serializer --> symfony/yaml byjg/serializer --> ext-simplexmlLoading
