PHPackages                             firevel/webhook-gateway-laravel-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. [API Development](/categories/api)
4. /
5. firevel/webhook-gateway-laravel-client

ActiveLibrary[API Development](/categories/api)

firevel/webhook-gateway-laravel-client
======================================

Webhook Gateway client for Laravel

0.2.3(2y ago)09.9k↓62.7%1MITPHPCI failing

Since Mar 25Pushed 9mo agoCompare

[ Source](https://github.com/firevel/webhook-gateway-laravel-client)[ Packagist](https://packagist.org/packages/firevel/webhook-gateway-laravel-client)[ RSS](/packages/firevel-webhook-gateway-laravel-client/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (9)Dependencies (2)Versions (10)Used By (0)

Readme
======

[](#readme)

Webhook Gateway client for Laravel
==================================

[](#webhook-gateway-client-for-laravel)

This package is developed to share events between micro-services and 3rd party integrations.

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

[](#installation)

Install using composer:

```
composer require firevel/webhook-gateway-laravel-client
```

Publish config:

```
php artisan vendor:publish --provider="Firevel\WebhookGatewayLaravelClient\Providers\WebhookGatewayClientServiceProvider" --tag="config"
```

Client
======

[](#client)

Client is responsible for receiving events from Webhook Gateway and dispatching them as internal Laravel events.

Setup
-----

[](#setup)

1. Create client account on Webhook Gateway using client url (by default `https://[HOST]/events`).
2. Set client secret in `config/webhookgateway.php` or `WEBHOOKGATEWAY_CLIENT_SECRET` env variable.

Usage
-----

[](#usage)

Set channels you would like to listen to in Webhook Gateway subscribers section. Events are always starting with service for example `billing.invoice.created`.

```
Event::listen('billing.invoice.created', function ($invoice) {
    PaymentService::payInvoice($invoice);
});
```

You can also use Laravel event listeners.

```
protected $listen = [
    'billing.invoice.created' => [
        'App\Listeners\InvoiceCreated',
    ],
];
```

Events include `WebhookEvent $event` payload, that contains methods:

```
$event->getData(); // Get event data array.
$event->getData('user.email'); // Get event data using "dot" annotation.
$event->getChannel(); // Get event channel name.
$event->getMeta(); // Get event meta data array.
$event->getMeta('role.id'); // Get meta data using "dot" annotation.
$event->getId(); // Get event id.
$event->getSubscription(); // Get event subscription array.
```

You can set custom webhook event class in `webhookgateway.event_class` configuration.

Service
=======

[](#service)

Use service configuration to share Laravel events with Webhook Gateway and other micro-services.

Setup
-----

[](#setup-1)

1. Create a new service at Webhook Gateway and set service name with service secret.
2. Set Webhook Gateway service name, and secret in `config/webhookgateway.php`.
3. Select events you would like to share with Webhook Gateway using `webhookgateway.channels` config.

Usage
-----

[](#usage-1)

### Sharing events

[](#sharing-events)

Events matching `webhookgateway.channels` pattern, are going to be shared with other micro services subscribed to namespace used in channels configuration. Webhook Gateway will automatically add service prefix to every event dispatched.

For example if you are using service name `billing` and setup channel

```
'invoice.created' => [
    'eloquent.created: App/Models/Invoice',
 ]
```

every save event of invoice model going to be dispatched as `billing.invoice.created`.

### Eloquent events

[](#eloquent-events)

By default, eloquent models are transformer to array using `(array) $model`. If you would like to customize event format add to your model:

```
/**
 * Get the event data array for the model.
 *
 * @return array
 */
public function toEventArray()
{
    return [
        // Your code here...
    ];
}
```

You can also attach meta data to each event by adding to your model:

```
/**
 * Get the event meta data array.
 *
 * @return array
 */
public function eventMetadata()
{
    // Your code here...
}
```

### Laravel events

[](#laravel-events)

To share Laravel events with event gateway you can use regular `webhookgateway.channels` configuration for example:

```
'user.suspended' => [
    'App\Events\UserSuspended'
],
```

You can use `toEventArray` and `eventMetadata` method to customize payload or meta data.

FAQ
===

[](#faq)

### Can I use WebHook gateway as Event Broadcasting driver?

[](#can-i-use-webhook-gateway-as-event-broadcasting-driver)

You would need to build custom driver (check `Illuminate\Contracts\Broadcasting`). Broadcasting driver is not the part of this package as laravel broadcasting was developed for other purposes (web sockets).

### Credits

[](#credits)

- SpringboardVR for initial implementation.

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance41

Moderate activity, may be stable

Popularity25

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 92.7% 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 ~164 days

Recently: every ~172 days

Total

9

Last Release

977d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/2696038?v=4)[Michael Slowik](/maintainers/sl0wik)[@sl0wik](https://github.com/sl0wik)

---

Top Contributors

[![sl0wik](https://avatars.githubusercontent.com/u/2696038?v=4)](https://github.com/sl0wik "sl0wik (38 commits)")[![StyleCIBot](https://avatars.githubusercontent.com/u/11048387?v=4)](https://github.com/StyleCIBot "StyleCIBot (2 commits)")[![mphaedok](https://avatars.githubusercontent.com/u/40614383?v=4)](https://github.com/mphaedok "mphaedok (1 commits)")

### Embed Badge

![Health badge](/badges/firevel-webhook-gateway-laravel-client/health.svg)

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

###  Alternatives

[craftcms/cms

Craft CMS

3.6k3.6M3.1k](/packages/craftcms-cms)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3741.3M46](/packages/tencentcloud-tencentcloud-sdk-php)[spatie/laravel-export

Create a static site bundle from a Laravel app

674146.0k6](/packages/spatie-laravel-export)[simplestats-io/laravel-client

Server-side analytics for Laravel that follows the full funnel from visit to registration to payment, attributed to the channel that drove it. Revenue, MRR, churn and ad-spend profit (ROAS/CAC) per channel. GDPR compliant, ad-blocker proof.

5022.0k](/packages/simplestats-io-laravel-client)[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

273.0k](/packages/eslazarev-wildberries-sdk)[jasara/php-amzn-selling-partner-api

A fluent interface for Amazon's Selling Partner API in PHP

1348.7k1](/packages/jasara-php-amzn-selling-partner-api)

PHPackages © 2026

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