0

Final Class Yiisoft\Queue\Provider\QueueFactoryProvider

InheritanceYiisoft\Queue\Provider\QueueFactoryProvider
ImplementsYiisoft\Queue\Provider\QueueConsumerProviderInterface, Yiisoft\Queue\Provider\QueueProducerProviderInterface

Lazily creates producer and consumer roles from strict nested role maps.

Method Details

Hide inherited methods

__construct() public method

public mixed __construct ( array $definitions, ?\Psr\Container\ContainerInterface $container null, boolean $validate true )
$definitions array
$container ?\Psr\Container\ContainerInterface
$validate boolean

                public function __construct(
    array $definitions,
    private readonly ?ContainerInterface $container = null,
    private readonly bool $validate = true,
) {
    /** @var array<string, array<string, mixed>> $validatedDefinitions */
    $validatedDefinitions = $this->validateRoleMaps($definitions);
    $this->definitions = $validatedDefinitions;
    foreach ($this->definitions as $queueName => $roles) {
        if (array_key_exists('producer', $roles)) {
            $this->producerQueueNames[] = $queueName;
        }
        if (array_key_exists('consumer', $roles)) {
            $this->consumerQueueNames[] = $queueName;
        }
    }
}

            
getConsumer() public method

public Yiisoft\Queue\QueueConsumerInterface getConsumer ( string|\BackedEnum $queueName )
$queueName string|\BackedEnum

                public function getConsumer(string|BackedEnum $queueName): QueueConsumerInterface
{
    $consumer = $this->get($queueName, 'consumer', QueueConsumerInterface::class);
    assert($consumer instanceof QueueConsumerInterface);
    return $consumer;
}

            
getConsumerQueueNames() public method

public array getConsumerQueueNames ( )

                public function getConsumerQueueNames(): array
{
    return $this->consumerQueueNames;
}

            
getProducer() public method

public Yiisoft\Queue\QueueProducerInterface getProducer ( string|\BackedEnum $queueName )
$queueName string|\BackedEnum

                public function getProducer(string|BackedEnum $queueName): QueueProducerInterface
{
    $producer = $this->get($queueName, 'producer', QueueProducerInterface::class);
    assert($producer instanceof QueueProducerInterface);
    return $producer;
}

            
getProducerQueueNames() public method

public array getProducerQueueNames ( )

                public function getProducerQueueNames(): array
{
    return $this->producerQueueNames;
}

            
hasConsumer() public method

public boolean hasConsumer ( string|\BackedEnum $queueName )
$queueName string|\BackedEnum

                public function hasConsumer(string|BackedEnum $queueName): bool
{
    return array_key_exists('consumer', $this->definitions[StringNormalizer::normalize($queueName)] ?? []);
}

            
hasProducer() public method

public boolean hasProducer ( string|\BackedEnum $queueName )
$queueName string|\BackedEnum

                public function hasProducer(string|BackedEnum $queueName): bool
{
    return array_key_exists('producer', $this->definitions[StringNormalizer::normalize($queueName)] ?? []);
}