PHPackages                             cms-health-project/psr15-implementation - 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. [PSR &amp; Standards](/categories/psr-standards)
4. /
5. cms-health-project/psr15-implementation

ActiveLibrary[PSR &amp; Standards](/categories/psr-standards)

cms-health-project/psr15-implementation
=======================================

PSR-15 implementation of the CMS HealthCheck RFC.

0.0.3(1y ago)13MITPHPPHP ^8.1CI passing

Since Mar 16Pushed 1y ago3 watchersCompare

[ Source](https://github.com/cms-health-project/psr15-implementation)[ Packagist](https://packagist.org/packages/cms-health-project/psr15-implementation)[ RSS](/packages/cms-health-project-psr15-implementation/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)Dependencies (22)Versions (4)Used By (0)

PSR15 implementation of the CMS HealthCheck RFC
===============================================

[](#psr15-implementation-of-the-cms-healthcheck-rfc)

Introduction
------------

[](#introduction)

To have a [PSR-15 compatible request handler](https://www.php-fig.org/psr/psr-15/) for the [CMS health check RFC](https://github.com/cms-health-project/health-check-rfc) this repo is built using [eqsgroup/health-check-provider](https://github.com/eqsgroup/health-check-provider) as a base but using [cms-health-project/serializable-reference-implementation](https://github.com/cms-health-project/serializable-reference-implementation) for the actual implementation of the output schema which got slightly adjusted from the original RFC.

This was created during [CloudFest Hackathon 2025](https://hackathon.cloudfest.com/project/cms-health-checks-2025/).

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

[](#installation)

To use this library in your project or library, require it with:

```
composer require "cms-health-project/psr15-implementation"

```

Usage
-----

[](#usage)

To use this in your application, you'd typically register a new route like e.g. `GET /health` which can then use the [RequestHandler](/src/RequestHandler.php) to process the request.

To configure your health checks you have two options. You can pass instances of [HealthCheckerInterface](/src/HealthChecker/HealthCheckerInterface.php) directly to the constructor of [RequestHandler](/src/RequestHandler.php). It also accepts a [PSR-14 Event Dispatcher](https://www.php-fig.org/psr/psr-14/) which allows you to register some event listeners/subscribers that react to the [CollectHealthCheckResultsEvent](/src/EventDispatcher/CollectHealthCheckResultsEvent.php).

```
$checks = [
    new CallableHealthChecker(
        'callable:responseTime',
        fn () => true,
        'your-component-id',
        'your-component-type',
        500,
    ),
    new DoctrineConnectionHealthChecker(
        $connection,
    ),
    new HttpHealthChecker(
        'http:request',
        new Client(),
        new Request('GET', '/some/endpoint'),
    ),
];

$handler = new RequestHandler(
    new ResponseFactory(),
    new StreamFactory(),
    'your-service-id',
    'your-service-description',
    $checks,
    eventDispatcher: $eventDispatcher,
);

$response = $handler->handle($request);
```

Take a look at the [tests](/tests) for more usage examples.

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance46

Moderate activity, may be stable

Popularity5

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 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 ~0 days

Total

3

Last Release

419d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/22ea8c0796de498c0d81554f12539e71bdb9b9359df3a82a7fb450867a68a680?d=identicon)[sbuerk](/maintainers/sbuerk)

---

Top Contributors

[![burned42](https://avatars.githubusercontent.com/u/16883833?v=4)](https://github.com/burned42 "burned42 (13 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/cms-health-project-psr15-implementation/health.svg)

```
[![Health](https://phpackages.com/badges/cms-health-project-psr15-implementation/health.svg)](https://phpackages.com/packages/cms-health-project-psr15-implementation)
```

###  Alternatives

[cakephp/cakephp

The CakePHP framework

8.8k18.5M1.6k](/packages/cakephp-cakephp)[kreait/firebase-php

Firebase Admin SDK

2.4k39.7M72](/packages/kreait-firebase-php)[drupal/core-recommended

Locked core dependencies; require this project INSTEAD OF drupal/core.

6939.5M342](/packages/drupal-core-recommended)[windwalker/framework

The next generation PHP framework.

25639.1k1](/packages/windwalker-framework)[tempest/framework

The PHP framework that gets out of your way.

2.1k23.1k9](/packages/tempest-framework)[flow-php/flow

PHP ETL - Extract Transform Load - Data processing framework

81733.7k](/packages/flow-php-flow)

PHPackages © 2026

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