定制 ifresh/package-health 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ifresh/package-health

Composer 安装命令:

composer require ifresh/package-health

包简介

Sends updatable packages to the mothership

README 文档

README

A small Laravel package that periodically generates a health/status report for your application or packages and sends it to a remote endpoint.

The package exposes an Artisan command that:

  • Decides whether a report should be sent (via a configurable decider class)
  • Generates a report payload
  • Sends the payload to a configured API endpoint
  • Fails gracefully when the endpoint is unreachable

Features

  • 🩺 Centralized health/status reporting
  • 🔌 Pluggable decision logic to control when data is sent
  • 📦 Customizable report generation
  • 🔐 Token-based authentication
  • 🧯 Graceful handling of connection failures

Requirements

  • PHP 8.0+
  • Laravel 9.x or higher

Installation

Install the package via Composer:

composer require ifresh/package-health

Publish the configuration file:

php artisan vendor:publish --tag=package-health-config

Configuration

The package is configured via config/health.php.

Available options

return [
    // The URL where health reports will be posted
    'url' => env('HEALTH_ENDPOINT_URL'),

    // API token used for authenticating requests
    'api_token' => env('HEALTH_API_TOKEN'),

    // Class responsible for deciding whether a report should be sent
    'decider' => \IFresh\PackageHealth\Deciders\DefaultDecider::class,
];

Environment variables

HEALTH_ENDPOINT_URL=https://example.com/api/health
HEALTH_API_TOKEN=your-api-token

Artisan Command

The package registers the following command:

php artisan health:send-package-status

What the command does

  1. Resolves the configured decider and calls shouldPost()
  2. Stops immediately if the decider returns false
  3. Generates a report using ReportGenerator
  4. Sends the report as JSON to the configured endpoint
  5. Logs a warning if the request fails due to a connection error

Decision Logic (Decider)

The decider determines if and when the health report should be sent.

A decider class must implement a shouldPost(): bool method.

Example:

class DefaultDecider
{
    public function shouldPost(): bool
    {
        return app()->environment('production');
    }
}

This allows you to:

  • Limit reports to production
  • Send reports on a schedule
  • Implement rate limiting or time-based logic

Report Generation

Reports are generated by:

IFresh\PackageHealth\Generators\ReportGenerator

You can extend or replace this class to customize the payload structure or contents.

Error Handling & Logging

If the endpoint cannot be reached, the package:

  • Catches Illuminate\Http\Client\ConnectionException
  • Logs a warning with the request URL and error message
  • Does not throw or fail the command

This ensures your scheduled jobs remain stable.

Scheduling

You can run the command automatically using Laravel's scheduler:

$schedule->command('health:send-package-status')->hourly();

Security

  • Requests are authenticated using a Bearer token
  • Payloads are sent as JSON
  • Ensure the endpoint is served over HTTPS

License

This package is proprietary and maintained by iFresh Workspace.

Support

For questions or issues, contact:

ifresh/package-health 适用场景与选型建议

ifresh/package-health 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 436 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 01 月 19 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 ifresh/package-health 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 ifresh/package-health 我们能提供哪些服务?
定制开发 / 二次开发

基于 ifresh/package-health 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 436
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 3
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-19