matephp / dto
MatePHP - DTO - Simple Data Transfer Objects (DTO) for any framework
Requires
- php: ^8.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.94
- mockery/mockery: ^1.6
- pestphp/pest: ^4.4
- phpstan/phpstan: ^2.1
This package is auto-updated.
Last update: 2026-04-14 22:37:27 UTC
README
Mate/dto
High-performance, modern and framework-agnostic DTO library for PHP 8.4+.
🚀 Overview
Mate/dto is a lightweight, zero-dependency (almost) core component designed to be completely framework-agnostic. It leverages modern PHP 8.4 features like Asymmetric Visibility and Constructor Property Promotion to provide a developer-friendly API with maximum performance.
📦 Installation
Install the library via Composer:
composer require mate-php/dto
📖 Quick Start
Define your DTO using standard PHP properties and asymmetric visibility for better encapsulation:
use Mate\Dto\Dto; class UserDto extends Dto { public private(set) string $name; public private(set) int $age; public ?string $email = null; } // Instantiate from an array $user = new UserDto([ 'name' => 'John Doe', 'age' => 30, 'email' => 'john.doe@example.com' ]); echo $user->name; // John Doe echo $user->toJson();
📚 Full Documentation
For advanced features like Collections, Custom Mapping, Strict Mode, and Benchmarks, please visit our full documentation site:
👉 https://mate-php.github.io/dto/
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for details on our development workflow and commit message standards.
Made with ❤️ by the MatePHP Team.
