Download the PHP package kirillbdev/php-data-transformer without Composer
On this page you can find all versions of the php package kirillbdev/php-data-transformer. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download kirillbdev/php-data-transformer
More information about kirillbdev/php-data-transformer
Files in kirillbdev/php-data-transformer
Package php-data-transformer
Short Description Transform your data into typed objects
License MIT
Informations about the package php-data-transformer
This package helps you to transform custom data into typed objects.
Installation
Using composer
composer require kirillbdev/php-data-transformer ^1.0.0
Examples
1. Convert array of data to DTO
At first create simple DTO class.
Now, using DataTransformer, let's transform an arbitrary data array into our DTO.
Class DtoTransfer will bypass all public properties of our Dto and automatically fetch values from input DataObject ( in our case it is an array). As you see, it's simple.
2. Receive custom keys from DataObject
There are situations when the keys of the input data differ from the property names of our DTO. In this case, we can receive data of the desired property using the @ReceiveFrom
annotation.
Now, try to transform data.
3. Type casting
You can specify which type you want to cast for certain properties in DTO. Use the @Cast("type")
annotation for this. At this moment package support next types: int, float, bool.
You also can cast property to other typed object. For this you can use @Cast(<classname>)
annotation. I recommend you to use full class name for this (includes namespace).
4. Custom transformation logic
Sometimes there are situations when you need to implement custom transformation logic of the desired property. In this case, you can implement an arbitrary transformation method for the desired property. The method must be named transform{PropertyName}Property
and take a single argument DataObjectInterface
, which is used to retrieve the data.