0 follower

Final Class Yiisoft\Hydrator\AttributeHandling\ResolverFactory\ContainerAttributeResolverFactory

InheritanceYiisoft\Hydrator\AttributeHandling\ResolverFactory\ContainerAttributeResolverFactory
ImplementsYiisoft\Hydrator\AttributeHandling\ResolverFactory\AttributeResolverFactoryInterface

A factory for attribute resolvers that are instantiable by a container.

Method Details

Hide inherited methods

__construct() public method

public mixed __construct ( \Psr\Container\ContainerInterface $container )
$container \Psr\Container\ContainerInterface

Container to get attributes' resolvers from.

                public function __construct(
    private ContainerInterface $container,
) {
}

            
create() public method

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);
}