1. Go to this page and download the library: Download d3jmc/data-transfer-object library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
d3jmc / data-transfer-object example snippets
namespace App\Dto;
use D3jmc\DataTransferObject\DataTransferObject;
class UserDto extends DataTransferObject
{
public ?string $firstName = null;
public ?string $lastName = null;
}
$data = [
'first_name' => 'John',
'last_name' => 'Doe',
];
// via the constructor
$userDto = new App\Dto\UserDto($data);
// via the `fill` method
$userDto = new App\Dto\UserDto();
$userDto->fill($data);
namespace App\Dto;
use D3jmc\DataTransferObject\DataTransferObject;
class UserGdprDto extends DataTransferObject
{
public bool $email = false;
public bool $post = false;
public bool $sms = false;
}
namespace App\Dto;
use D3jmc\DataTransferObject\DataTransferObject;
class UserDto extends DataTransferObject
{
public ?string $firstName = null;
public ?string $lastName = null;
public ?UserGdprDto $gdpr = null;
}
namespace App\Dto;
use D3jmc\DataTransferObject\DataTransferObject;
class UserRoleDto extends DataTransferObject
{
public ?string $ident = null;
public ?string $name = null;
public ?string $description = null;
}
namespace App\Dto;
use D3jmc\DataTransferObject\DataTransferObject;
class UserDto extends DataTransferObject
{
public ?string $firstName = null;
public ?string $lastName = null;
public ?UserGdprDto $gdpr = null;
/**
* @var array<App\Dto\UserRoleDto>
*/
public array $roles = [];
}
$map = [
// last_name is our DTO property
// surname is what is returned by the API
'last_name' => 'surname',
];
// via the constructor
$userDto = new App\Dto\UserDto($apiData, $map);
// via the `map` method
$userDto = new App\Dto\UserDto();
$userDto->map($map);
$userDto->fill($apiData);