matephp/dto

MatePHP - DTO - Simple Data Transfer Objects (DTO) for any framework

Maintainers

Package info

github.com/mate-php/dto

pkg:composer/matephp/dto

Statistics

Installs: 44

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

2.0.0 2026-04-14 22:29 UTC

README

Mate/dto Logo

Mate/dto

High-performance, modern and framework-agnostic DTO library for PHP 8.4+.

Repo Latest Stable Version Unstable Version PHP Version Total Downloads License Hits-of-Code Coverage

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