oat-sa/lib-health-check

OAT Health Check Library

1.1.0 2021-03-24 08:46 UTC

This package is auto-updated.

Last update: 2021-08-24 09:37:22 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.

By example, you need first to create CheckerInterface implementations as follow:

<?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

Tests

To run tests:

$ vendor/bin/phpunit

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