djl997 / laravel-release-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 维护计划调度器不派发它自己的事件。相反,我们挂钩到默认的 Laravel Artisan 事件:MaintenanceModeEnabled
和 MaintenanceModeDisabled
。当然,您也可以这样做。
此外,您可以在应用程序的 App\Providers\EventServiceProvider
类中观察 MaintenanceSchedule 模型。
use Djl997\LaravelMaintenanceScheduler\Models\MaintenanceSchedule; MaintenanceSchedule::observe(YourObserver::class);
变更日志
有关最近更改的更多信息,请参阅变更日志。
贡献
此软件包正在积极开发中,欢迎提出想法或改进建议。
许可证
MIT 许可证(MIT)。有关更多信息,请参阅许可证文件。