Health checks PHP library.
$ composer require oat-sa/lib-health-check
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.
To run tests:
$ vendor/bin/phpunit
Note: see phpunit.xml.dist for available test suites.