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.
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