PHPackages                             decodelabs/fabric - 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. [Framework](/categories/framework)
4. /
5. decodelabs/fabric

ActiveLibrary[Framework](/categories/framework)

decodelabs/fabric
=================

Lightweight PHP framework implementation using DecodeLabs ecosystem

v0.10.6(7mo ago)11.4k1MITPHPPHP ^8.4CI passing

Since Nov 27Pushed 5mo ago2 watchersCompare

[ Source](https://github.com/decodelabs/fabric)[ Packagist](https://packagist.org/packages/decodelabs/fabric)[ RSS](/packages/decodelabs-fabric/feed)WikiDiscussions develop Synced 1mo ago

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

Fabric
======

[](#fabric)

[![PHP from Packagist](https://camo.githubusercontent.com/5fd0387fe4d034340f170813c470597f5021af0e2d65905e13ed59e5fa6b80d3/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f6465636f64656c6162732f6661627269633f7374796c653d666c6174)](https://packagist.org/packages/decodelabs/fabric)[![Latest Version](https://camo.githubusercontent.com/4346aac35f9e76c8555257f22eef1e923efaa07257ae3d0f379f18a392b7c067/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6465636f64656c6162732f6661627269632e7376673f7374796c653d666c6174)](https://packagist.org/packages/decodelabs/fabric)[![Total Downloads](https://camo.githubusercontent.com/e846fc431405401ff35e2df132ae5d18dd4217c07ca2d683b125aa2b1023c021/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6465636f64656c6162732f6661627269632e7376673f7374796c653d666c6174)](https://packagist.org/packages/decodelabs/fabric)[![GitHub Workflow Status](https://camo.githubusercontent.com/228cf4e0a8e159aeab51c1dfaad97a8aa1deb6af995a43e97fe52f7a11a7702a/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6465636f64656c6162732f6661627269632f696e746567726174652e796d6c3f6272616e63683d646576656c6f70)](https://github.com/decodelabs/fabric/actions/workflows/integrate.yml)[![PHPStan](https://camo.githubusercontent.com/e25c14ce011edabdd0fbd2e10415b41cc5d66ed11ef3e5b7edd074c5bdd35a2d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048505374616e2d656e61626c65642d3434434331312e7376673f6c6f6e6743616368653d74727565267374796c653d666c6174)](https://github.com/phpstan/phpstan)[![License](https://camo.githubusercontent.com/6ff7380f12c443c08d6358a51bf638469aec482aac6078d03734aee76a01488d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6465636f64656c6162732f6661627269633f7374796c653d666c6174)](https://packagist.org/packages/decodelabs/fabric)

### Lightweight PHP framework implementation using DecodeLabs ecosystem

[](#lightweight-php-framework-implementation-using-decodelabs-ecosystem)

Fabric provides the structures, prerequisites and conventions for building a web application using the DecodeLabs ecosystem.

---

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

[](#installation)

This package requires PHP 8.4 or higher.

Install via Composer:

```
composer require decodelabs/fabric
```

Usage
-----

[](#usage)

A Fabric app looks very similar to a standard package with most code residing in the src folder, under a namespace of your choice and loaded via composer.

### Bootstrapping

[](#bootstrapping)

Fabric uses `Genesis` for bootstrapping your application. Add the `DecodeLabs\Fabric\Genesis\Hub` class to your `composer.json` file:

```
{
    "extra": {
        "genesis": {
            "hub": "DecodeLabs\\Fabric\\Genesis\\Hub"
        }
    }
}
```

Then point your HTTP server to rewite to `vendor/genesis.php` as your entry point. Genesis takes care of the rest.

### Config

[](#config)

Fabric utilises `Dovetail` for config loading - via a private .env file in the app root and data files in /config (though this can be customised if necessary).

The most important config file is the `Environment.php` file which defines some key values for the rest of the app to initialize with.

The *appNamespace* value will allow you to define the namespace in which the majority of your app code will reside, and which is already defined for loading in your composer file.

### Kingdom

[](#kingdom)

*Coming soon*

### Structure

[](#structure)

Fabric provides solid HTTP and CLI kernels that can handle requests in both contexts. `Clip` is used for CLI tasks, and `Harvest` for HTTP.

The HTTP kernel uses an extensible set of Middlewares to provide a flexible request handling pipeline. The default implementation is provided by `Harvest` and is a good starting point for most apps.

Greenleaf is used for routing and provides a simple, flexible and powerful routing system for HTTP Actions.

Licensing
---------

[](#licensing)

Fabric is licensed under the MIT License. See [LICENSE](./LICENSE) for the full license text.

###  Health Score

42

—

FairBetter than 90% of packages

Maintenance67

Regular maintenance activity

Popularity17

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 99.5% 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 ~14 days

Recently: every ~5 days

Total

49

Last Release

227d ago

PHP version history (2 changes)v0.1.0PHP ^8.1

v0.4.0PHP ^8.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/8a241d64d12b3b5ee94197862ec1ec30b82ed2efa34a0cd7f4c3565a021daddd?d=identicon)[betterthanclay](/maintainers/betterthanclay)

---

Top Contributors

[![betterthanclay](https://avatars.githubusercontent.com/u/1273586?v=4)](https://github.com/betterthanclay "betterthanclay (190 commits)")[![szepeviktor](https://avatars.githubusercontent.com/u/952007?v=4)](https://github.com/szepeviktor "szepeviktor (1 commits)")

---

Tags

frameworkphp

### Embed Badge

![Health badge](/badges/decodelabs-fabric/health.svg)

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

PHPackages © 2026

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