letsgoi / laravel-health-check
Laravel 健康检查器
Requires
- php: ^8.3
- ext-json: *
- illuminate/support: ^10.0|^11.0
Requires (Dev)
- letsgoi/php-code-style: ^1.3
- orchestra/testbench: ^9.1
- phpunit/phpunit: ^11.2
README
基于定义的检查器执行健康检查分析的包。
需求
- PHP >= 8.3
- Laravel >= 10.0
安装
- 使用 Composer 安装包
composer require letsgoi/laravel-health-check
- 发布配置
php artisan vendor:publish --provider="Letsgoi\HealthCheck\HealthCheckServiceProvider" --tag="config"
服务提供器将被自动注册,但是如果您想手动添加,必须在您的 config/app.php
文件中添加以下内容
'providers' => [ // ... Letsgoi\HealthCheck\HealthCheckServiceProvider::class, ];
配置
您必须在配置文件(config/laravel_health_check.php
)中设置所有想要在检查中通过的检查器数组
'checkers' => [ ... Letsgoi\HealthCheck\Checkers\DatabaseConnectionChecker::class, Letsgoi\HealthCheck\Checkers\WritablePathsChecker::class, ... ],
您可以选择检查任何检查器而不检查所有,但此配置适用于一般检查。
用法
检查单个检查器
使用 HealthCheck
门面检查单个检查器
use Letsgoi\HealthCheck\Facades; HealthCheck::check(new Checker());
如果检查通过,它将返回 true
,如果不通过,则抛出 HealthCheckerException
。
检查配置文件中定义的所有检查器
要检查配置文件中定义的所有检查器,请使用 HealthCheck
门面的 healthCheck
方法
use Letsgoi\HealthCheck\Facades; HealthCheck::healthCheck();
如果所有检查都通过,它将返回 true
,如果不通过,则抛出包含失败检查器的 HealthCheckerException
。
获取检查错误
如果您想获取配置文件中定义的所有检查器的所有检查错误,可以使用 getCheckErrors
方法
use Letsgoi\HealthCheck\Facades; HealthCheck::getCheckErrors();
它返回包含所有错误的数组。
HealthCheck 命令
您可以使用 artisan 命令运行健康检查
php artisan health-check
如果所有检查都通过,它将显示“ok”,如果不通过,则显示异常。
HealthCheck 端点
您可以在配置文件(laravel_health_check
)中配置一个端点来检查您应用程序的健康状况
... 'endpoint' => [ 'enabled' => env('HEALTH_CHECK_ENDPOINT_ENABLED', true), // Enable/disable endpoint 'path' => env('HEALTH_CHECK_ENDPOINT_PATH', '/health-check'), // Configure path of endpoint 'healthy_message' => env('HEALTH_CHECK_ENDPOINT_HEALTHY_MESSAGE', 'Healthy'), // Set ok message ], ...
如果所有检查都通过,它将返回“ok”消息,如果不通过,则返回包含错误的服务器错误。
检查器
可用检查器
以下是可用的预定义检查器
Letsgoi\HealthCheck\Checkers\AppKeyChecker
:检查是否已定义应用程序密钥为环境变量。Letsgoi\HealthCheck\Checkers\DatabaseConnectionChecker
:检查应用程序是否可以连接到默认数据库连接。Letsgoi\HealthCheck\Checkers\DatabaseMigrationsChecker
:检查是否所有迁移都更新到最新状态。Letsgoi\HealthCheck\Checkers\DebugChecker
:检查应用程序是否不在调试模式下。Letsgoi\HealthCheck\Checkers\EnvFileChecker
:检查是否存在 .env 文件。Letsgoi\HealthCheck\Checkers\WritablePathsChecker
:检查必要的路径是否可写。
自定义检查器
如果您需要一些自定义检查器(或尚未提供的某些内容,欢迎 PR :)),您可以简单地实现 Letsgoi\HealthCheck\Contracts\HealthChecker
协议。
它强制实现一个返回 true
(检查通过)或 false
(检查未通过)的 check
方法。
然后您可以通过将其添加到配置文件或以单独模式进行检查来正常使用它。
测试
运行测试
composer test
贡献
欢迎拉取请求。对于重大更改,请先创建一个问题来讨论您想要更改的内容。
请确保根据需要更新测试。