Download the PHP package philiprehberger/php-dto-mapper without Composer
On this page you can find all versions of the php package philiprehberger/php-dto-mapper. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Table of contents
Download philiprehberger/php-dto-mapper
More information about philiprehberger/php-dto-mapper
Files in philiprehberger/php-dto-mapper
Download philiprehberger/php-dto-mapper
More information about philiprehberger/php-dto-mapper
Files in philiprehberger/php-dto-mapper
Vendor philiprehberger
Package php-dto-mapper
Short Description Map arrays and JSON to strongly-typed DTOs with attribute-driven configuration
License MIT
Homepage https://github.com/philiprehberger/php-dto-mapper
Package php-dto-mapper
Short Description Map arrays and JSON to strongly-typed DTOs with attribute-driven configuration
License MIT
Homepage https://github.com/philiprehberger/php-dto-mapper
Please rate this library. Is it a good library?
Informations about the package php-dto-mapper
PHP DTO Mapper
Map arrays and JSON to strongly-typed DTOs with attribute-driven configuration.
Requirements
- PHP 8.2+
Installation
Usage
Define a DTO
Map from array
Map from JSON
Map a collection
Safe mapping
Strict mapping
Reject unknown source keys to catch API contract violations and typos:
Nested DTOs
Dot-notation access
Access nested source data with dot-notation in #[MapFrom]:
Partial mapping
Map incomplete data without errors for missing non-nullable fields:
Union types
Properties with union types are coerced by trying each type in declaration order:
Custom casters
Implement the Caster interface:
Use with the #[CastWith] attribute:
Collection caster
Map arrays of items to typed DTO arrays:
Enum casting
API
| Method | Description |
|---|---|
DtoMapper::map(array $data, string $class): object |
Map an associative array to a DTO |
DtoMapper::strict(array $data, string $class): object |
Map with unknown key rejection |
DtoMapper::mapJson(string $json, string $class): object |
Map a JSON string to a DTO |
DtoMapper::mapPartial(array $data, string $class): object |
Map without requiring all fields |
DtoMapper::mapCollection(array $items, string $class): array |
Map an array of arrays to DTOs |
DtoMapper::tryMap(array $data, string $class): ?object |
Map returning null on failure |
Attributes
| Attribute | Target | Description |
|---|---|---|
#[MapFrom('key')] |
Property | Map from a different source key (supports dot-notation) |
#[Optional] |
Property | Allow missing keys, use default value |
#[CastWith(Caster::class)] |
Property | Apply a custom caster |
Built-in Casters
| Caster | Description |
|---|---|
DateTimeCaster |
Casts string to DateTimeImmutable |
EnumCaster |
Casts string/int to a backed enum |
CollectionCaster |
Casts array of arrays to array of DTOs |
Development
Support
If you find this project useful:
License
MIT
All versions of php-dto-mapper with dependencies
PHP Build Version
Package Version
Requires
php Version
^8.2
The package philiprehberger/php-dto-mapper contains the following files
Loading the files please wait ...