djl997/laravel-maintenance-scheduler

该包用于管理应用程序版本、安排维护、生成版本变更日志以及使维护模式更友好。

0.8.0 2024-03-02 11:10 UTC

This package is auto-updated.

Last update: 2024-10-01 00:14:57 UTC


README

Latest Version on Packagist Total Downloads Software License

Laravel Maintenance Scheduler 是一个包,用于管理您的应用程序版本、安排维护、生成变更日志并使维护模式更友好。目标是通知最终用户维护计划和版本变更。此包不会管理自动发布和/或运行发布脚本和/或自动发布生成的变更日志。

特性

  • 生成可读的维护消息。
  • 使用一个 PHP Artisan 命令生成次要或补丁版本号。
  • 生成变更日志(语义化版本控制)
  • 自动集成到 php artisan downphp artisan up
  • 如果没有安排维护时间,它将自动创建和激活一个未计划的维护时间。

路线图

以下是即将到来的大致路线图(不分先后顺序)

  • 生成 changelog.md 文件
  • 创建取消命令
  • 改进设置
  • 将重新计算连接到初始版本
  • 配置初始版本
  • 将当前版本添加到应用布局(如何操作)
  • 配置第一个版本
  • 翻译(EN,NL,DE)

要求

Laravel Maintenance Scheduler 需要 PHP 8+ 和 Laravel 8+。

安装

您可以通过 composer 在项目中使用此包

composer require djl997/laravel-maintenance-scheduler

轻量版

在轻量版中,您不需要任何数据库表。只需通过 config/maintenance-scheduler.php 配置文件配置版本即可

php artisan vendor:publish --tag=maintenance-config

完整版

发布迁移文件

php artisan vendor:publish --tag=maintenance-migrations

迁移所需的数据库表 maintenance_schedule

php artisan migrate

安装第一个版本。

php artisan maintenance:install

使用

注意!此包仍在开发中。欢迎使用此包,但 API 的大幅更改可能会发生。无任何保证。

命令

php artisan maintenance:list # List all versions
php artisan maintenance:create # Wizard to create and schedule a new maintenance
php artisan maintenance:delete {maintenanceID} # Delete one specific maintenance by ID
php artisan maintenance:recalculate # Recalculate version structure (semver)

启用维护模式

要激活维护模式,请运行默认的 Laravel 命令 php artisan down。Laravel Maintenance Scheduler 将搜索指定日期的安排维护并激活它们。注意如果没有安排维护,将自动创建并激活一个未计划的维护。

禁用维护模式

要禁用维护模式,请运行 php artisan up。Laravel Maintenance Scheduler 将完成活动维护并使其可用于生成变更日志。您可以复制粘贴此内容到 Github,例如。

显示维护消息

use Djl997\LaravelMaintenanceScheduler\Models\MaintenanceSchedule;

$message = MaintenanceSchedule::getMaintenanceMessage();

显示当前版本

use Djl997\LaravelMaintenanceScheduler\Models\MaintenanceSchedule;

$version = MaintenanceSchedule::getCurrentVersion();

该值缓存在 Laravel Cache 中,以防止对数据库进行不必要的查询。如果显示的版本不正确,您可以尝试运行 php artisan cache:clearphp artisan optimize:clear,然后检查是否可以正常工作。

自定义配置

如果您想更改 默认配置,您可以发布配置文件

php artisan vendor:publish --tag=maintenance-config

编辑配置文件后,请运行 php artisan maintenance:recalculate。所有版本应更新到您的新结构。

事件

Laravel Maintenance Scheduler 不会派遣它自己的事件。相反,我们挂钩到默认的 Laravel Artisan 事件:MaintenanceModeEnabledMaintenanceModeDisabled。当然,您也可以这样做。

此外,您还可以在应用程序的 App\Providers\EventServiceProvider 类中观察 MaintenanceSchedule 模型

use Djl997\LaravelMaintenanceScheduler\Models\MaintenanceSchedule;

MaintenanceSchedule::observe(YourObserver::class);

变更日志

请参阅 CHANGELOG 以获取有关最近更改的更多信息。

贡献

此包处于积极开发中,欢迎提出想法或改进。

许可证

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