oat-sa / lib-health-check
OAT Health Check Library
Installs: 30 465
Dependents: 2
Suggesters: 0
Security: 0
Stars: 0
Watchers: 42
Forks: 0
Open Issues: 1
Requires
- php: >=7.2.0
- psr/log: ^1.0
- symfony/error-handler: ^4.4|^5.0
Requires (Dev)
- php-coveralls/php-coveralls: ^2.4
- phpunit/phpunit: 8.5.14
This package is auto-updated.
Last update: 2024-11-17 14:38:01 UTC
README
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.