oat-sa/lib-health-check

OAT Health Check Library

1.2.0 2021-10-19 13:31 UTC

README

Latest Version License GPL2 Build Status Coverage Status Packagist Downloads

Health checks PHP library.

Table of contents

Installation

$ composer require oat-sa/lib-health-check

Usage

This library provides a HealthChecker object in charge to aggregate and execute implementations of the CheckerInterface.

On the HealthChecker class performChecks() method execution, a CheckerResultCollection instance is returned, aggregating all checkers results information.

For example, you need first to create CheckerInterface implementations as follows:

<?php declare(strict_types=1);

use OAT\Library\HealthCheck\Checker\CheckerInterface;
use OAT\Library\HealthCheck\Result\CheckerResult;

class MySuccessChecker implements CheckerInterface
{
    public function getIdentifier() : string
    {
        return 'MySuccessChecker';
    }
    
    public function check() : CheckerResult
    {
        return new CheckerResult(true, 'my success message');
    }
}

class MyFailureChecker implements CheckerInterface
{
    public function getIdentifier() : string
    {
        return 'MyFailureChecker';
    }
    
    public function check() : CheckerResult
    {
        return new CheckerResult(false, 'my failure message');
    }
}

Then register the checkers into the HealthChecker, and perform checks as following:

<?php declare(strict_types=1);

use OAT\Library\HealthCheck\HealthChecker;

$healthChecker = new HealthChecker();

$results = $healthChecker
    ->registerChecker(new MySuccessChecker())
    ->registerChecker(new MyFailureChecker())
    ->performChecks();

$results->hasErrors(); // true

foreach ($results as $result) {
    echo $result->getMessage();
}

Notes:

  • you can provide to the HealthChecker (as 2nd constructor parameter) a LoggerInterface instance to customise its logging behaviour.
  • by default, the NullLogger will be used.
  • it is recommended to catch only known exceptions in order to form an appropriate result message. The unknown exceptions and errors should be bubbled up to the HealthCheker level.

Tests

To run tests:

$ vendor/bin/phpunit

Note: see phpunit.xml.dist for available test suites.