PHPackages                             webravolab/layers - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. webravolab/layers

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

webravolab/layers
=================

PHP abstraction layers

1.1.1(6y ago)0525MITPHPPHP &gt;=7.1

Since Feb 20Pushed 5y ago1 watchersCompare

[ Source](https://github.com/webravolab/layers)[ Packagist](https://packagist.org/packages/webravolab/layers)[ RSS](/packages/webravolab-layers/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependencies (17)Versions (37)Used By (0)

WebravoLab Layers
=================

[](#webravolab-layers)

Laravel hexagonal architecture - Domain Driven Design abstraction layers

Includes:

- Generic queue handler using either RabbitMQ or Database
- Command bus (using generic queue handler)
    - Generic Command to be extended from your commands
    - Command bus dispatcher and remote command dispatcher
- Event sink (using generic queue handler)
    - Generic Event to be extended from your events
    - Event bus dispatcher and remote event dispatcher
- StackDriver logging (extending Monolog)
- Null logger (for testing)
- Eloquent persistence layer
- Generic configuration helper with override through database settings table
- Cdn image service (using webravolab/cdn package)
- File system service
- Abstract entity to be extended by your entities
- Abstract Value Objects and some simple implementations (url, guid, filename)

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

[](#installation)

`composer require webravolab/layers --no-dev`

To perform tests omit the `--no-dev` to install the development dependencies.

The package is compatible with Laravel &gt;= 5, not using (at the moment) any real version dependency.

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

[](#configuration)

### RabbitMQ Queue Handler

[](#rabbitmq-queue-handler)

To use **RabbitMQService** you must have a running RabbitMQ server and copy the following file:

copy `config/rabbitmq.php` to laravel /config directory and customize configuration to access your RabbitMQ instance.

### Database Queue Handler

[](#database-queue-handler)

**DBQueueService** is a DB based 100% replacement of RabbitMQ. It needs 3 tables to work:

```
jobs_queue
jobs
events

```

You can find the Laravel migrations to build these tables under `tests/database/migrations`. Just replace the DB connection from *testbench* to whatever is your database name.

Testing
-------

[](#testing)

PhpUnit test suite is available. It creates a memory based SqLite database instance to create the required tables and perform tests. It uses the package `orchestra/testbench` to simulate a full Laravel environment.

To test CdnService with Google Cloud Storage you must copy your service account json file to /tests folder (google-credentials.json).

### Usage

[](#usage)

To understand the generic Queue Handler behaviour plese refer to the included tests for usage examples.

To understand the queue **strategies** please refer to RabbitMQ documentation.

### Notes

[](#notes)

Stackdriver logging implementations require google/cloud-logging library and its dependencies.

It also needs a service account json key loaded in the project root directory. Refer to Google Cloud authentication docs for the details.

Config helper
-------------

[](#config-helper)

**Webravo\\Infrastructure\\Library\\Configuration** is a helper to access environment and config variables in a standard way, allowing variables override through a database table called *settings*.

You can find the Laravel migration to build the setting table under `tests/database/migrations`.

To enable settings override you must set the environment variable SETTINGS\_DB\_CONNECTION with the name of your DB connection where the settings table is located.

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 97.3% 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 ~6 days

Recently: every ~1 days

Total

21

Last Release

2505d ago

PHP version history (2 changes)1.0.31PHP &gt;=7.0

1.0.46PHP &gt;=7.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/98fa0d207fa087e4170f308b1e2d6735572813fc2c5972f55c8e96c6155e3a7a?d=identicon)[paolo.nardini.bravosconto](/maintainers/paolo.nardini.bravosconto)

---

Top Contributors

[![PaoloNardini](https://avatars.githubusercontent.com/u/10460883?v=4)](https://github.com/PaoloNardini "PaoloNardini (36 commits)")[![webravolab](https://avatars.githubusercontent.com/u/40839676?v=4)](https://github.com/webravolab "webravolab (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/webravolab-layers/health.svg)

```
[![Health](https://phpackages.com/badges/webravolab-layers/health.svg)](https://phpackages.com/packages/webravolab-layers)
```

###  Alternatives

[google/cloud-core

Google Cloud PHP shared dependency, providing functionality useful to all components.

343121.4M79](/packages/google-cloud-core)[google/cloud

Google Cloud Client Library

1.2k16.2M53](/packages/google-cloud)[wallabag/wallabag

open source self hostable read-it-later web application

12.6k2.2k](/packages/wallabag-wallabag)[spomky-labs/pwa-bundle

Progressive Web App Manifest Generator Bundle for Symfony.

6144.4k1](/packages/spomky-labs-pwa-bundle)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

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