shuvroroy/filament-spatie-laravel-health

此插件基于Spatie的Laravel-health包构建

v2.1.0 2024-07-27 14:59 UTC

README

PHP Version Require GitHub Tests Action Status Latest Stable Version Total Downloads License

此包提供了一个Filament页面,您可以通过使用 spatie/laravel-health 包注册检查来监控您应用程序的健康状况。

Screenshot 2023-08-04 at 10 06 01 PM

支持本项目

Buy Me A Coffee

安装

您可以通过composer安装此包

composer require shuvroroy/filament-spatie-laravel-health

此包可以以多种方式存储健康检查结果 (例如)。当使用EloquentHealthResultStore时,检查结果将存储在数据库中。要创建health_check_result_history_items表,您必须创建并运行迁移。

php artisan vendor:publish --tag="health-migrations"
php artisan migrate

发布包的资产

php artisan filament:assets

使用方法

您首先需要将插件与Filament进行注册。这可以在您的 PanelProvider 中完成,例如 AdminPanelProvider

<?php

namespace App\Providers\Filament;

use Filament\Panel;
use Filament\PanelProvider;
use ShuvroRoy\FilamentSpatieLaravelHealth\FilamentSpatieLaravelHealthPlugin;

class AdminPanelProvider extends PanelProvider
{
   public function panel(Panel $panel): Panel
   {
       return $panel
           // ...
           ->plugin(FilamentSpatieLaravelHealthPlugin::make());
   }
}

然后在app/Providers/AppServiceProvider.php中的 boot 方法注册Health::checks

<?php

namespace App\Providers;

use Spatie\Health\Facades\Health;
use Spatie\Health\Checks\Checks\OptimizedAppCheck;
use Spatie\Health\Checks\Checks\DebugModeCheck;
use Spatie\Health\Checks\Checks\EnvironmentCheck;

class AppServiceProvider extends ServiceProvider
{
    public function boot(): void
    {
        Health::checks([
            OptimizedAppCheck::new(),
            DebugModeCheck::new(),
            EnvironmentCheck::new(),
        ]);
    }
}

请参阅 Spatie Laravel Health 的完整文档

如果您想覆盖默认的 HealthCheckResults 页面图标和标题,则可以扩展页面类,并覆盖 navigationIcon 属性和 getHeading 方法等。

<?php

namespace App\Filament\Pages;

use ShuvroRoy\FilamentSpatieLaravelHealth\Pages\HealthCheckResults as BaseHealthCheckResults;

class HealthCheckResults extends BaseHealthCheckResults
{
    protected static ?string $navigationIcon = 'heroicon-o-cpu-chip';

    public function getHeading(): string | Htmlable
    {
        return 'Health Check Results'
    }

    public static function getNavigationGroup(): ?string
    {
        return 'Core';
    }
}

然后在 AdminPanelProvider 类中注册扩展的页面类。

<?php

namespace App\Providers\Filament;

use Filament\Panel;
use Filament\PanelProvider;
use ShuvroRoy\FilamentSpatieLaravelHealth\FilamentSpatieLaravelHealthPlugin;
use App\Filament\Pages\HealthCheckResults;

class AdminPanelProvider extends PanelProvider
{
    public function panel(Panel $panel): Panel
    {
        return $panel
            // ...
            ->plugin(
                FilamentSpatieLaravelHealthPlugin::make()
                    ->usingPage(HealthCheckResults::class)
            );
    }
}

升级

请参阅 UPGRADE 了解如何将1.X升级到2.0的详细信息。

测试

composer test

变更日志

请参阅 CHANGELOG 了解最近更改的更多信息。

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全漏洞

请参阅 我们的安全策略 了解如何报告安全漏洞。

致谢

许可协议

MIT许可(MIT)。有关更多信息,请参阅 许可文件