PHPackages                             sagacorp/yii2-queue-azure-service-bus - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Queues &amp; Workers](/categories/queues)
4. /
5. sagacorp/yii2-queue-azure-service-bus

ActiveYii2-extension[Queues &amp; Workers](/categories/queues)

sagacorp/yii2-queue-azure-service-bus
=====================================

Yii2 Queue driver for Azure service bus

4.0.0(3mo ago)0818[1 issues](https://github.com/sagacorp/yii2-queue-azure-bus-service/issues)MITPHPPHP ^8.3CI passing

Since Jul 12Pushed 2w ago3 watchersCompare

[ Source](https://github.com/sagacorp/yii2-queue-azure-bus-service)[ Packagist](https://packagist.org/packages/sagacorp/yii2-queue-azure-service-bus)[ RSS](/packages/sagacorp-yii2-queue-azure-service-bus/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (10)Dependencies (13)Versions (17)Used By (0)

Azure service bus driver for Yii2 Queue
=======================================

[](#azure-service-bus-driver-for-yii2-queue)

This extension is a [Yii2 Queue](https://github.com/yiisoft/yii2-queue) driver for queues based on [Microsoft Azure Service Bus](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview).

It uses the [Azure Service Bus REST API](https://docs.microsoft.com/en-us/rest/api/servicebus)

Installation
------------

[](#installation)

Install this extension with [composer](http://getcomposer.org/download/).

Either run

```
php composer.phar require --prefer-dist sagacorp/yii2-queue-azure-service-bus

```

or add the extension to your composer json.

```
"sagacorp/yii2-queue-azure-service-bus": "^5.0"

```

Basic Usage
-----------

[](#basic-usage)

First, you may configure your [Azure service Bus](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quickstart-portal#create-a-namespace-in-the-azure-portal).

Then, configure yii2 queue, and the service bus like the following:

```
return [
    'components' => [
        'queue' => [
            'class' => \saga\queue\azure\Queue::class,
            'as log' => \yii\queue\LogBehavior,
            'serializer' => \yii\queue\serializers\JsonSerializer::class,
            'serviceBus' => [
                'class' => \saga\queue\azure\service\ServiceBus::class,

                // Where to connect. Either a connection string...
                'connectionString' => 'Endpoint=sb://(namespace).servicebus.windows.net/;EntityPath=(queue)',

                // ...or the namespace and queue directly.
                'namespace' => 'your service bus namespace',
                'queue' => 'the name of your Azure Service Bus queue (can be different than the name used as config key)',

                // Required: how to authenticate (see below). When SharedAccessKeyName and SharedAccessKey are present in connectionString, a SasTokenProvider is configured automatically.
                'tokenProvider' => [
                    'class' => \saga\queue\azure\service\SasTokenProvider::class,
                    'sharedAccessKeyName' => 'your shared access key name',
                    'sharedAccessKey' => 'your shared access key',
                ],
            ],
        ],
    ],
];
```

### Authentication

[](#authentication)

Authentication is handled by a dedicated `tokenProvider` component, so the `ServiceBus` component itself only carries the connection parameters. It is required — unless a connection string with a shared access key is supplied, in which case a `SasTokenProvider` is configured automatically. The `tokenProvider` accepts a configuration array (as shown below), a shared application component id, or an already built `TokenProvider` instance. Two providers are shipped:

**`SasTokenProvider`** — [Shared Access Signature](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-sas)authentication:

```
'tokenProvider' => [
    'class' => \saga\queue\azure\service\SasTokenProvider::class,
    'sharedAccessKeyName' => '...',
    'sharedAccessKey' => '...',
],
```

When the `ServiceBus` `connectionString` already contains `SharedAccessKeyName` and `SharedAccessKey`, this provider is configured automatically and `tokenProvider` can be omitted.

**`AzureAdTokenProvider`** — [Azure AD](https://learn.microsoft.com/azure/aks/workload-identity-overview)authentication via [`azure-oss/identity`](https://github.com/Azure-OSS/azure-identity-php)'s `DefaultAzureCredential` (environment variables, then workload identity). The acquired access token is used as a `Bearer` token against the Service Bus REST API. When the Azure Workload Identity mutating webhook is enabled, the credentials are injected automatically through the `AZURE_*`environment variables, so no configuration is needed:

```
'tokenProvider' => \saga\queue\azure\service\AzureAdTokenProvider::class,
```

Optionally tune the scope and token caching:

```
'tokenProvider' => [
    'class' => \saga\queue\azure\service\AzureAdTokenProvider::class,
    'scope' => 'https://servicebus.azure.net/.default', // default
    // Shared token cache. Defaults to the application `cache` component when available, otherwise
    // the token is only kept in memory for the lifetime of the worker. Set to false to opt out, or
    // pass another cache component id / configuration / instance.
    'cache' => 'cache',
    'expiryLeeway' => 300, // seconds before expiry at which the cached token is refreshed
],
```

> This provider requires a [PSR-18](https://www.php-fig.org/psr/psr-18/) HTTP client and [PSR-17](https://www.php-fig.org/psr/psr-17/) factories to be installed, for example `composer require guzzlehttp/guzzle`.

The targeted identity must be granted a Service Bus data plane role (e.g. *Azure Service Bus Data Sender* / *Data Receiver*) on the namespace or queue.

Once configured, you can send a task into the queue:

```
Yii::$app->queue->push(new DownloadJob([
    'url' => 'http://example.com/image.jpg',
    'file' => '/tmp/image.jpg',
]));
```

###  Health Score

52

—

FairBetter than 96% of packages

Maintenance91

Actively maintained with recent releases

Popularity18

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity75

Established project with proven stability

 Bus Factor1

Top contributor holds 64% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~123 days

Recently: every ~27 days

Total

15

Last Release

94d ago

Major Versions

1.2.5 → 2.0.02025-07-22

2.0.0 → 3.0.02025-12-15

3.0.3 → 4.0.02026-04-02

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/81697853?v=4)[SaGa Corp](/maintainers/sagacorp)[@sagacorp](https://github.com/sagacorp)

---

Top Contributors

[![achretien](https://avatars.githubusercontent.com/u/5468508?v=4)](https://github.com/achretien "achretien (16 commits)")[![AdrienHt](https://avatars.githubusercontent.com/u/16516183?v=4)](https://github.com/AdrienHt "AdrienHt (8 commits)")[![avideau](https://avatars.githubusercontent.com/u/5588393?v=4)](https://github.com/avideau "avideau (1 commits)")

---

Tags

queueservicemicrosoftazureyii2yiibusyii2-queue

###  Code Quality

Static AnalysisRector

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/sagacorp-yii2-queue-azure-service-bus/health.svg)

```
[![Health](https://phpackages.com/badges/sagacorp-yii2-queue-azure-service-bus/health.svg)](https://phpackages.com/packages/sagacorp-yii2-queue-azure-service-bus)
```

###  Alternatives

[craftcms/cms

Craft CMS

3.6k3.6M3.1k](/packages/craftcms-cms)[squigg/azure-queue-laravel

Laravel Queue Driver for Microsoft Azure Storage Queue

43276.7k1](/packages/squigg-azure-queue-laravel)[zhuravljov/yii2-queue-monitor

Yii2 Queue Analytics Module

102213.5k](/packages/zhuravljov-yii2-queue-monitor)[trntv/yii2-command-bus

Yii2 Command Bus extension

57660.0k8](/packages/trntv-yii2-command-bus)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
