oat-sa / lib-health-check

OAT 健康检查库

1.2.0 2021-10-19 13:31 UTC

This package is auto-updated.

Last update: 2024-09-17 14:11:47 UTC


README

Latest Version License GPL2 Build Status Coverage Status Packagist Downloads

健康检查 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 以获取可用的测试套件。