Final Class Yiisoft\Input\Http\HydratorAttributeParametersResolver
| Inheritance | Yiisoft\Input\Http\HydratorAttributeParametersResolver |
|---|---|
| Implements | Yiisoft\Middleware\Dispatcher\ParametersResolverInterface |
HydratorAttributeParametersResolver resolves middleware parameters with hydrator parameter attributes.
Public Methods
| Method | Description | Defined By |
|---|---|---|
| __construct() | Yiisoft\Input\Http\HydratorAttributeParametersResolver | |
| resolve() | Yiisoft\Input\Http\HydratorAttributeParametersResolver |
Method Details
| 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);
}
| 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;
}
Signup or Login in order to comment.