djl997 / laravel-maintenance-scheduler
该包用于管理应用程序版本、安排维护、生成版本变更日志以及使维护模式更友好。
Requires
- php: ^8.0
- laravel/framework: ^8.0|^9.0|^10.0|^11.0
README
Laravel Maintenance Scheduler 是一个包,用于管理您的应用程序版本、安排维护、生成变更日志并使维护模式更友好。目标是通知最终用户维护计划和版本变更。此包不会管理自动发布和/或运行发布脚本和/或自动发布生成的变更日志。
特性
- 生成可读的维护消息。
- 使用一个 PHP Artisan 命令生成次要或补丁版本号。
- 生成变更日志(语义化版本控制)
- 自动集成到
php artisan down
和php 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:clear
或 php artisan optimize:clear
,然后检查是否可以正常工作。
自定义配置
如果您想更改 默认配置,您可以发布配置文件
php artisan vendor:publish --tag=maintenance-config
编辑配置文件后,请运行 php artisan maintenance:recalculate
。所有版本应更新到您的新结构。
事件
Laravel Maintenance Scheduler 不会派遣它自己的事件。相反,我们挂钩到默认的 Laravel Artisan 事件:MaintenanceModeEnabled
和 MaintenanceModeDisabled
。当然,您也可以这样做。
此外,您还可以在应用程序的 App\Providers\EventServiceProvider
类中观察 MaintenanceSchedule 模型
use Djl997\LaravelMaintenanceScheduler\Models\MaintenanceSchedule; MaintenanceSchedule::observe(YourObserver::class);
变更日志
请参阅 CHANGELOG 以获取有关最近更改的更多信息。
贡献
此包处于积极开发中,欢迎提出想法或改进。
许可证
MIT许可(MIT)。更多信息请参阅许可文件。