1. Go to this page and download the library: Download litea/dto 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/ */
litea / dto example snippets
$user = $client->getUser();
// How do we access user's name?
// Like this?
echo $user['name'];
// Or is it more like this?
echo $user['first_name'];
// I don't remember, it's been while...
// Is it something like this?
echo $user['full_name'];
// Or was it camelCased?!
echo $user['fullName'];
use \Litea\DataTransfer\DataObject;
class User extends DataObject
{
/**
* @var string
* @dto-property first_name
* So it was snake_case after all...
*/
public $fistName;
/**
* @var string
* @dto-property LastName
* And last name is PascalCased? What?
* It's weird API we're dealing with, indeed.
* Fortunately we can easily rename it for our purposes.
*/
public $lastName;
}
$response = $client->getUser();
$user = User::create($response);
// There we go!
// Now, we've got an auto-completion and everything.
echo $user->firstName;
echo $user->lastName;
class InitCallResponse
{
public const REDIRECT_URL = 'redirectURL';
public const REQUEST_ID = 'requestID';
/**
* @var string
*/
public $redirectUrl;
/**
* @var string
*/
public $requestId;
/**
* InitCallResponse constructor.
* @param string $redirectUrl
* @param string $requestId
*/
public function __construct(string $redirectUrl, string $requestId)
{
$this->redirectUrl = $redirectUrl;
$this->requestId = $requestId;
}
/**
* @param array $data
* @return self
* @throws MissingDataTransferPropertyException
*/
public static function create(array $data): self
{
$
// Include composer's auto-loading features
client->request('GET', 'https://jsonplaceholder.typicode.com/posts/1');
$post = json_decode((string)$response->getBody(), true);
// Now we access the data:
$postId = $post['id'];
$authorId = $post['authorId'];
$title = $post['tilte'];
// And the result:
// Notice: Undefined index: authorId in index.php on line 18
// Notice: Undefined index: tilte in index.php on line 19
// What?!
// We need to refer to the API documentation or run the code and
// debug it to find out what does the response body actually look like.
//
// As you can see, this is very error prone. First we find out, that
// the field for accessing author's id is actually named `userId`.
// Then we might discover the typo we made and correct `tilte` to `title`.
namespace MyApp\DTO;
class Post extends \Litea\DataTransfer\DataObject
{
public string $id;
public int $userId;
}
// ...
// first lines are the same
// then we get the post:
$postRaw = json_decode((string)$response->getBody(), true);
// Now we wrap it up with the DTO magic:
$post = MyApp\DTO\Post::create($postRaw);
// Now we know the structure we are dealing with:
$postId = $post->id;
$authorId = $post->userId;
// And then, they lived happily ever after...
// The end
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.