0 follower

Final Class Yiisoft\Input\Http\HydratorAttributeParametersResolver

InheritanceYiisoft\Input\Http\HydratorAttributeParametersResolver
ImplementsYiisoft\Middleware\Dispatcher\ParametersResolverInterface

HydratorAttributeParametersResolver resolves middleware parameters with hydrator parameter attributes.

Method Details

Hide inherited methods

__construct() public method

public mixed __construct ( \Yiisoft\Hydrator\AttributeHandling\ParameterAttributesHandler $handler, \Yiisoft\Hydrator\TypeCaster\TypeCasterInterface|null $typeCaster null, \Yiisoft\Hydrator\HydratorInterface|null $hydrator null )
$handler \Yiisoft\Hydrator\AttributeHandling\ParameterAttributesHandler

The hydrator parameter attributes handler.

$typeCaster \Yiisoft\Hydrator\TypeCaster\TypeCasterInterface|null

The hydrator type caster that is used to prepare value returned by parameter attributes handler for middleware parameter.

$hydrator \Yiisoft\Hydrator\HydratorInterface|null

The hydrator for context passed to type caster.

                public function __construct(
    private ParameterAttributesHandler $handler,
    ?TypeCasterInterface $typeCaster = null,
    ?HydratorInterface $hydrator = null,
) {
    $this->typeCaster = $typeCaster ?? new PhpNativeTypeCaster();
    $this->hydrator = $hydrator ?? new Hydrator(typeCaster: $this->typeCaster);
}

            
resolve() public method

public array resolve ( array $parameters, \Psr\Http\Message\ServerRequestInterface $request )
$parameters array
$request \Psr\Http\Message\ServerRequestInterface

                public function resolve(array $parameters, ServerRequestInterface $request): array
{
    $result = [];
    foreach ($parameters as $parameter) {
        $handleResult = $this->handler->handle($parameter);
        if ($handleResult->isResolved()) {
            $result[$parameter->getName()] = $this->prepareValue($handleResult, $parameter);
        }
    }
    return $result;
}