Final Class Yiisoft\Hydrator\AttributeHandling\ResolverFactory\ContainerAttributeResolverFactory
| Inheritance | Yiisoft\Hydrator\AttributeHandling\ResolverFactory\ContainerAttributeResolverFactory |
|---|---|
| Implements | Yiisoft\Hydrator\AttributeHandling\ResolverFactory\AttributeResolverFactoryInterface |
A factory for attribute resolvers that are instantiable by a container.
Public Methods
Method Details
| public mixed __construct ( \Psr\Container\ContainerInterface $container ) | ||
| $container | \Psr\Container\ContainerInterface |
Container to get attributes' resolvers from. |
public function __construct(
private ContainerInterface $container,
) {
}
| public mixed create ( Yiisoft\Hydrator\Attribute\Data\DataAttributeInterface|Yiisoft\Hydrator\Attribute\Parameter\ParameterAttributeInterface $attribute ) | ||
| $attribute | Yiisoft\Hydrator\Attribute\Data\DataAttributeInterface|Yiisoft\Hydrator\Attribute\Parameter\ParameterAttributeInterface | |
| throws | \Psr\Container\ContainerExceptionInterface | |
|---|---|---|
public function create(DataAttributeInterface|ParameterAttributeInterface $attribute): mixed
{
$resolver = $attribute->getResolver();
if (!is_string($resolver)) {
return $resolver;
}
if (!$this->container->has($resolver)) {
throw new AttributeResolverNonInstantiableException(
sprintf(
'Class "%s" does not exist.',
$resolver,
),
);
}
return $this->container->get($resolver);
}
Signup or Login in order to comment.