Download the PHP package romanzipp/dto without Composer
On this page you can find all versions of the php package romanzipp/dto. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download romanzipp/dto
More information about romanzipp/dto
Files in romanzipp/dto
Package dto
Short Description A strongly typed Data Transfer Object without magic for PHP 7.4+
License MIT
Informations about the package dto
DTO
A strongly typed Data Transfer Object without magic for PHP 8.0+ . Features support for PHP 8 union types and attributes.
Contents
- Installation
- Usage
- Validation table
Installation
Usage
Require properties
When declaring required properties, the DTO will validate all parameters against the declared properties. Take a look at the validation table for more details.
romanzipp\DTO\Exceptions\InvalidDataException: The required property `name` is missing
Array methods
Simple array representation
To get an array representation of the DTO, simply call the toArray
instance method.
When transferring the DTO properties to an array format, the package will respect and call any toArray
methods of nested DTO instances or otherwise fall back to any declared jsonSerialize
method when implementing the JsonSerializable
interface.
Convert keys
The toArrayConverted
method allows the simple conversion of property keys to a given case.
Flexible DTOs
When attaching the Flexible
attribute you can provide more parameters than declared in the DTO instance.
All properties will also be included in the toArray
methods. This would otherwise throw an InvalidDataException
.
Validation
Definition | Required | Value | Valid | isset() |
---|---|---|---|---|
public $foo |
no | '' |
✅ | ✅ |
public $foo |
no | NULL |
✅ | ✅ |
public $foo |
no | none | ✅ | ✅ |
public $foo |
yes | '' |
✅ | ✅ |
public $foo |
yes | NULL |
✅ | ✅ |
public $foo |
yes | none | 🚫 | - |
public string $foo |
no | '' |
✅ | ✅ |
public string $foo |
no | NULL |
🚫 | - |
public string $foo |
no | none | ✅ | 🚫 |
public string $foo |
yes | '' |
✅ | ✅ |
public string $foo |
yes | NULL |
🚫 | - |
public string $foo |
yes | none | 🚫 | - |
public ?string $foo |
no | '' |
✅ | ✅ |
public ?string $foo |
no | NULL |
✅ | ✅ |
public ?string $foo |
no | none | ✅ | 🚫 |
public ?string $foo |
yes | '' |
✅ | ✅ |
public ?string $foo |
yes | NULL |
✅ | ✅ |
public ?string $foo |
yes | none | 🚫 | - |
public ?string $foo = null |
no | '' |
✅ | ✅ |
public ?string $foo = null |
no | NULL |
✅ | ✅ |
public ?string $foo = null |
no | none | ✅ | ✅ |
public ?string $foo = null |
yes | '' |
⚠️* | - |
public ?string $foo = null |
yes | NULL |
⚠️* | - |
public ?string $foo = null |
yes | none | ⚠️* | - |
* Attributes with default values cannot be required.
Testing
Credits
This package has been inspired by Spaties Data-Transfer-Object released under the MIT License.
All versions of dto with dependencies
ext-json Version *