bradietilley/php-data

A lightweight, framework-agnostic Data Transfer Object library for PHP with first-class Laravel integration.

Maintainers

Package info

github.com/bradietilley/php-data

pkg:composer/bradietilley/php-data

Transparency log

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.0.1 2026-07-23 09:43 UTC

This package is auto-updated.

Last update: 2026-07-23 13:05:31 UTC


README

A lightweight, framework-agnostic Data Transfer Object (DTO) library for PHP, with first-class Laravel integration.

Static Analysis Tests Laravel Version PHP Version

Documentation

Full documentation is available at bradietilley.dev/php-data.

Installation

composer require bradietilley/php-data
use BradieTilley\Data\Data;

class ProductData extends Data
{
    public function __construct(
        public string $title,
        public int $reviews,
        public float $rating,
        public CategoryData $category,
    ) {}
}

class CategoryData extends Data
{
    public function __construct(
        public string $title,
        public bool $featured,
    ) {}
}

// Hydrate from an array, model, DTO, stdClass or JSON string, with automatic casting
$product = ProductData::from([
    'title' => 'Denim Jeans',
    'reviews' => '5',
    'rating' => '4.5',
    'category' => [
        'name' => 'Pants',
        'featured' => false,
    ],
]);

// …or construct explicitly with named arguments
$product = ProductData::make(
    title: 'Widget',
    reviews: '5',
    rating: '4.5',
    category: [
        'name' => 'Pants',
        'featured' => false,
    ],
);

$product->category; // CategoryData<[ 'title'  => 'Pants', 'featured' => false ]>

// Serialize
$product->toArray(); // ['title' => 'Widget', 'reviews' => 5, 'rating' => 4.5, 'category' => ['title'  => 'Pants', 'featured' => false]]

See the documentation for hydration, serialization, attributes, and framework-agnostic usage.

Credits