oat-sa / lib-health-check
OAT 健康检查库
1.2.0
2021-10-19 13:31 UTC
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-09-17 14:11:47 UTC
README
健康检查 PHP 库。
目录
安装
$ composer require oat-sa/lib-health-check
使用
本库提供了一个负责聚合和执行 CheckerInterface 实现的 HealthChecker 对象。
在 HealthChecker
类的 performChecks()
方法执行时,返回一个 CheckerResultCollection 实例,聚合所有检查器的结果信息。
例如,首先需要创建以下 CheckerInterface 实现如下
<?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'); } }
然后将检查器注册到 HealthChecker 中,并按照以下方式进行检查
<?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(); }
注意:
- 您可以为
HealthChecker
(作为第2个构造函数参数)提供一个 LoggerInterface 实例来自定义其日志行为。 - 默认情况下,将使用
NullLogger
。 - 建议只捕获已知的异常,以形成适当的结果消息。未知异常和错误应向上冒泡到
HealthCheker
层级。
测试
运行测试
$ vendor/bin/phpunit
注意:请参阅 phpunit.xml.dist 以获取可用的测试套件。