Go to file
2021-08-23 23:27:21 +07:00
bin/docker Первоначальная заготовка для экспорера в массив 2021-08-22 19:05:23 +07:00
src Изменил логику обхода 2021-08-23 23:27:21 +07:00
tests Изменил структуру карты. 2021-08-23 18:08:10 +07:00
.gitignore Первоначальная заготовка для экспорера в массив 2021-08-22 19:05:23 +07:00
.gitlab-ci.yml Первоначальная заготовка для экспорера в массив 2021-08-22 19:05:23 +07:00
codeception.yml Первоначальная заготовка для экспорера в массив 2021-08-22 19:05:23 +07:00
composer.json Первоначальная заготовка для экспорера в массив 2021-08-22 19:05:23 +07:00
composer.lock Первоначальная заготовка для экспорера в массив 2021-08-22 19:05:23 +07:00
docker-compose-ci.yml Первоначальная заготовка для экспорера в массив 2021-08-22 19:05:23 +07:00
docker-compose.yml Первоначальная заготовка для экспорера в массив 2021-08-22 19:05:23 +07:00
Makefile Первоначальная заготовка для экспорера в массив 2021-08-22 19:05:23 +07:00
Readme.md Первоначальная заготовка для экспорера в массив 2021-08-22 19:05:23 +07:00

pipeline status coverage report

Dto2data

Установка

composer require rinsvent/dto2data

Пример

Описания ДТО

class BuyRequest
{
    public string $phrase;
    public int $length;
    public bool $isFirst;
}

interface BarInterface
{

}

class Bar implements BarInterface
{
    public float $barField;
}

class HelloRequest
{
    #[Trim]
    public string $surname;
    #[PropertyPath('fake_age')]
    public int $age;
    public array $emails;
    #[DTOMeta(class: Author::class)]
    public array $authors;
    public BuyRequest $buy;
    #[DTOMeta(class: Bar::class)]
    public BarInterface $bar;
}

Использование

use Rinsvent\DTO2Data\Dto2DataConverter;

$dto2DataConverter = new Dto2DataConverter();
$dto = $dto2DataConverter->convert([
    'surname' => '   asdf',
    'fake_age' => 3,
    'emails' => [
        'sfdgsa',
        'af234f',
        'asdf33333'
    ],
    'authors' => [
        [
            'name' => 'Tolkien',
        ],
        [
            'name' => 'Sapkovsky'
        ]
    ],
    'buy' => [
        'phrase' => 'Buy buy!!!',
        'length' => 10,
        'isFirst' => true,
        'extraData2' => '1234'
    ],
    'bar' => [
        'barField' => 32
    ],
    'extraData1' => 'qwer'
], new HelloRequest);