Download the PHP package imbue/data-transfer-object without Composer
On this page you can find all versions of the php package imbue/data-transfer-object. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package data-transfer-object
Data Transfer Object
A variation / interpretation of the Data Transfer Object (DTO) design pattern (Distribution Pattern). A DTO is nothing more than an object that can hold some data. Most commonly it is used for transporting that data between system layers.
Installation
You can install the package via composer
Usage
- Introduction
- Accessors & Mutators
- Defining A Getter
- Defining A Setter
- Serializing Objects & Collections
- Serializing To Arrays
- Serializing To JSON
- Collections
- Helpers
- Example
Introduction
Using getter/setter methods gives the advantage of type hinting all data being set. Thus any data object will be transparent and easy to use without the need of additional documentation, for example the API client you're writing.
Getters & Setters
Defining A Getter
To define a getter, simply create a get...()
method on your data object
Defining A Setter
To define a setters, simply create a set...()
method on your data object
Serializing Objects & Collections
Serializing To Arrays
To convert a value object and its nested objects/collections to an array, you can use the toArray
method. This method is recursive, so all attributes will be converted to arrays:
Serializing To JSON
To convert a value object and its nested objects/collections to a JSON object, you can use the toJson
method. This method is recursive, so all attributes will be converted into JSON:
Collections
In some cases you may want to have a collection of multiple data objects. By extending the provided DataTransferObjectColletion
class, you can easily set up a group of DTOs
Auto completion for collections
By overriding the current()
method and setting the return value, you can enable type hinting.
Helpers
There are a few helper methods to provide some extra functionality
only()
except()
Immutability
These helpers are immutable, which means they wont affect the original data transfer object.
Example
Using the data objects is made as simple as possible
Security
If you discover any security related issues, please use the issue tracker.
Testing
Credits
- This package is based on the data-transfer-object package from Spatie.
Arr
class contains functions copied from Laravel's Arr helper.