shindakioku/request-hydrator

Request hydrator into DTO with Validation

Installs: 7

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

pkg:composer/shindakioku/request-hydrator

0.1.10 2019-11-04 19:51 UTC

This package is auto-updated.

Last update: 2025-10-05 09:33:17 UTC


README

<?php

namespace App\Requests\Users;

use RequestHydator\App\Dto\DtoHydrator;

class CreateUser extends DtoHydrator
{
    public function rules(): array
    {
        return [
            'username' => 'required|string',
            'email' => 'required|email'
        ];
    }
}
<?php

use RequestHydrator\App\RequestHydrator;

namespace App\Http\Controllers;

class UsersController 
{
    private RequestHydrator $requestHydrator;

    public function __construct(RequestHydrator $requestHydrator)
    {
        $this->requestHydrator = $requestHydrator;
    }
    
    public function create()
    {
        return $this->requestHydrator->queries(new CreateUser)
                ->left(fn($validationErrors) => ...)
                ->right(fn(CreateUser $user) => $this->register->execute($user));
    }
}
<?php

use RequestHydrator\App\Request\Request;
use \PhpSlang\Option\Option;

class MyGreatRequest implements Request
{
    public function queries(array $keys = []): Option
    {
        return Option::of($_GET);
    }

    public function headers(array $keys = []): Option
    {
        return Option::of(\getallheaders());
    }
    
    public function body(array $keys = []): Option
    {
        return Option::of($_POST);
    }
}