0

Final Class Yiisoft\Queue\Provider\CompositeQueueProvider

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

Combines typed providers; earlier providers take precedence per capability.

Method Details

Hide inherited methods

__construct() public method

public mixed __construct ( Yiisoft\Queue\Provider\QueueProducerProviderInterface|Yiisoft\Queue\Provider\QueueConsumerProviderInterface $providers )
$providers Yiisoft\Queue\Provider\QueueProducerProviderInterface|Yiisoft\Queue\Provider\QueueConsumerProviderInterface

                public function __construct(QueueProducerProviderInterface|QueueConsumerProviderInterface ...$providers)
{
    foreach ($providers as $provider) {
        if ($provider instanceof QueueProducerProviderInterface) {
            $this->producerProviders[] = $provider;
        }
        if ($provider instanceof QueueConsumerProviderInterface) {
            $this->consumerProviders[] = $provider;
        }
    }
}

            
getConsumer() public method

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

                public function getConsumer(string|BackedEnum $queueName): QueueConsumerInterface
{
    foreach ($this->consumerProviders as $provider) {
        if ($provider->hasConsumer($queueName)) {
            return $provider->getConsumer($queueName);
        }
    }
    throw new QueueNotFoundException(StringNormalizer::normalize($queueName));
}

            
getConsumerQueueNames() public method

public list getConsumerQueueNames ( )

                public function getConsumerQueueNames(): array
{
    $result = [];
    foreach ($this->consumerProviders as $provider) {
        foreach ($provider->getConsumerQueueNames() as $queueName) {
            if (!in_array($queueName, $result, true)) {
                $result[] = $queueName;
            }
        }
    } return $result;
}

            
getProducer() public method

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

                public function getProducer(string|BackedEnum $queueName): QueueProducerInterface
{
    foreach ($this->producerProviders as $provider) {
        if ($provider->hasProducer($queueName)) {
            return $provider->getProducer($queueName);
        }
    }
    throw new QueueNotFoundException(StringNormalizer::normalize($queueName));
}

            
getProducerQueueNames() public method

public list getProducerQueueNames ( )

                public function getProducerQueueNames(): array
{
    $result = [];
    foreach ($this->producerProviders as $provider) {
        foreach ($provider->getProducerQueueNames() as $queueName) {
            if (!in_array($queueName, $result, true)) {
                $result[] = $queueName;
            }
        }
    } return $result;
}

            
hasConsumer() public method

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

                public function hasConsumer(string|BackedEnum $queueName): bool
{
    foreach ($this->consumerProviders as $p) {
        if ($p->hasConsumer($queueName)) {
            return true;
        }
    } return false;
}

            
hasProducer() public method

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

                public function hasProducer(string|BackedEnum $queueName): bool
{
    foreach ($this->producerProviders as $p) {
        if ($p->hasProducer($queueName)) {
            return true;
        }
    } return false;
}