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.2k↓50%1MITPHP

Since Mar 25Pushed 7mo 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 1mo 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

36

—

LowBetter than 82% of packages

Maintenance44

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

929d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3ef4a79c6f9a9afe04267a19b98fe0a5a45930c92d08fd720b233ab21ae102ca?d=identicon)[sl0wik](/maintainers/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

[skagarwal/google-places-api

Google Places Api

1913.0M8](/packages/skagarwal-google-places-api)[dcblogdev/laravel-microsoft-graph

A Laravel Microsoft Graph API (Office365) package

168285.5k1](/packages/dcblogdev-laravel-microsoft-graph)[vluzrmos/slack-api

Wrapper for Slack.com WEB API.

102589.1k3](/packages/vluzrmos-slack-api)[smodav/mpesa

M-Pesa API implementation

16363.7k1](/packages/smodav-mpesa)[jasara/php-amzn-selling-partner-api

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

1344.8k1](/packages/jasara-php-amzn-selling-partner-api)[grantholle/powerschool-api

A Laravel package to make interacting with PowerSchool less painful.

1715.6k1](/packages/grantholle-powerschool-api)

PHPackages © 2026

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