PHPackages                             lickd/slack-gateway-client - 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. [HTTP &amp; Networking](/categories/http)
4. /
5. lickd/slack-gateway-client

ActiveLibrary[HTTP &amp; Networking](/categories/http)

lickd/slack-gateway-client
==========================

PHP package for publishing messages to a Slack gateway micro-service via AWS SQS. Supports Laravel and Symfony.

v2.1.0(1mo ago)0104MITPHPPHP ^8.2CI passing

Since May 16Pushed 1mo agoCompare

[ Source](https://github.com/lickdltd/slack-gateway-client)[ Packagist](https://packagist.org/packages/lickd/slack-gateway-client)[ RSS](/packages/lickd-slack-gateway-client/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (9)Versions (6)Used By (0)

slack-gateway-client
====================

[](#slack-gateway-client)

[![CI](https://github.com/lickdltd/slack-gateway-client/actions/workflows/test.yml/badge.svg)](https://github.com/lickdltd/slack-gateway-client/actions/workflows/test.yml)

A PHP package for publishing messages to a Slack gateway micro-service via AWS SQS. Does not communicate with Slack directly — it enqueues messages for a gateway service to process.

Supports Laravel and Symfony.

Requirements
------------

[](#requirements)

DependencyVersionPHP`^8.2`Laravel`^10.0 | ^11.0 | ^12.0`Symfony`^6.0 | ^7.0`aws/aws-sdk-php`^3.0`Laravel and Symfony are optional — only the one matching your framework is required.

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

[](#installation)

```
composer require lickd/slack-gateway-client
```

### Laravel

[](#laravel)

The service provider is auto-discovered. No additional setup required.

### Symfony

[](#symfony)

Register the bundle in `config/bundles.php`:

```
Lickd\SlackGatewayClient\SlackGatewayClientBundle::class => ['all' => true],
```

Configuration
-------------

[](#configuration)

Both frameworks read from the same two environment variables:

```
SLACK_GATEWAY_QUEUE_BASE_URL=https://sqs.eu-west-1.amazonaws.com/123456789
SLACK_GATEWAY_QUEUE_PREFIX=my-slack
```

Queue names are derived as `{prefix}-high`, `{prefix}-normal`, and `{prefix}-low`.

Both frameworks also require an `Aws\Sqs\SqsClient` instance to be bound in the container. SQS credentials (`AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_DEFAULT_REGION`) are managed by the consuming application.

### Laravel

[](#laravel-1)

Add to `config/services.php`:

```
'slack_gateway' => [
    'queue_base_url' => env('SLACK_GATEWAY_QUEUE_BASE_URL'),
    'queue_prefix'   => env('SLACK_GATEWAY_QUEUE_PREFIX'),
],
```

### Symfony

[](#symfony-1)

Create `config/packages/slack_gateway_client.yaml`:

```
slack_gateway_client:
    queue_base_url: '%env(SLACK_GATEWAY_QUEUE_BASE_URL)%'
    queue_prefix: '%env(SLACK_GATEWAY_QUEUE_PREFIX)%'
```

Usage
-----

[](#usage)

Inject `SlackGatewayPublisherInterface` and call `publish()` with a `SlackMessageDto` and a `SlackQueue` priority:

```
use Lickd\SlackGatewayClient\Contracts\SlackGatewayPublisherInterface;
use Lickd\SlackGatewayClient\DataTransferObjects\SlackMessageDto;
use Lickd\SlackGatewayClient\Enums\SlackQueue;

class MyService
{
    public function __construct(private readonly SlackGatewayPublisherInterface $slack) {}

    public function notifyRelease(string $version): void
    {
        $this->slack->publish(
            new SlackMessageDto(
                channel:        '#releases',
                text:           "Deploy {$version} complete",
                source:         'deploy-service',
                idempotencyKey: "deploy-{$version}",
            ),
            SlackQueue::High,
        );
    }
}
```

### SlackMessageDto

[](#slackmessagedto)

PropertyTypeRequiredDefault`channel``string`yes—`text``string`yes—`blocks``array`no`[]``attachments``array`no`[]``threadTs``?string`no`null``idempotencyKey``?string`no`null``source``string`no`'unknown'`### SlackQueue

[](#slackqueue)

CaseDerived queue name`SlackQueue::High``{SLACK_GATEWAY_QUEUE_PREFIX}-high``SlackQueue::Normal``{SLACK_GATEWAY_QUEUE_PREFIX}-normal``SlackQueue::Low``{SLACK_GATEWAY_QUEUE_PREFIX}-low`Testing
-------

[](#testing)

```
composer install
./vendor/bin/phpunit
```

Licence
-------

[](#licence)

MIT. See [LICENSE](LICENSE).

###  Health Score

43

—

FairBetter than 89% of packages

Maintenance94

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~19 days

Total

3

Last Release

30d ago

Major Versions

v1.0.0 → v2.0.02026-06-03

### Community

Maintainers

![](https://www.gravatar.com/avatar/9e84dc58d294c04300268ad8dd7ac894fdfbf6c362b7021e11de798c777579d5?d=identicon)[lewissmithlickd](/maintainers/lewissmithlickd)

---

Top Contributors

[![lewissmithweb](https://avatars.githubusercontent.com/u/36776544?v=4)](https://github.com/lewissmithweb "lewissmithweb (5 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/lickd-slack-gateway-client/health.svg)

```
[![Health](https://phpackages.com/badges/lickd-slack-gateway-client/health.svg)](https://phpackages.com/packages/lickd-slack-gateway-client)
```

###  Alternatives

[symfony/http-kernel

Provides a structured process for converting a Request into a Response

8.1k869.4M9.0k](/packages/symfony-http-kernel)[symfony/http-client

Provides powerful methods to fetch HTTP resources synchronously or asynchronously

2.0k338.8M5.2k](/packages/symfony-http-client)[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.7k38.9k](/packages/matomo-matomo)[api-platform/metadata

API Resource-oriented metadata attributes and factories

295.0M223](/packages/api-platform-metadata)[mimmi20/browser-detector

Library to detect Browsers and Devices

48157.6k5](/packages/mimmi20-browser-detector)[keboola/storage-api-client

Keboola Storage API PHP Client

10405.9k40](/packages/keboola-storage-api-client)

PHPackages © 2026

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