julioserpone / sla-manager
一个用于计算和跟踪服务级别协议完成时间的PHP包
v1.0.2
2022-10-20 20:46 UTC
Requires
- php: ^8.0
- cmixin/enhanced-period: ^1.2
- illuminate/collections: ^8|^9|^10|^11
- nesbot/carbon: ^2
- spatie/period: ^2
Requires (Dev)
- laravel/pint: ^1.0
- pestphp/pest: ^1.21
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ^9.0
- spatie/invade: ^1.1
- spatie/pest-plugin-test-time: ^1.1
This package is auto-updated.
Last update: 2024-09-07 01:03:42 UTC
README
一个用于计算和跟踪服务级别协议完成时间的PHP包。
灵感来源于sla-timer包。
特性
- 🕚 简单的日程安排构建
- ‼️ 定义违约
- 🏝 假日及暂停时长
安装
您可以通过Composer安装sla-manager
composer require julioserpone/sla-manager
入门指南
要开始使用SLA计时器,请前往✨ SLA Timer 入门指南文档。
示例用法
要创建一个新的SLA计时器,我们可以先定义我们的SLA日程安排
require 'vendor/autoload.php';
use JulioSerpone\SlaManager\SLA;
use JulioSerpone\SlaManager\SLABreach;
use JulioSerpone\SlaManager\SLASchedule;
/**
* Create a new SLA between 9am and 5:30pm weekdays
*/
$sla = SLA::fromSchedule(
SLASchedule::create()->from('09:00:00')->to('17:30:00')
->onWeekdays()
);
我们可以通过在SLA上调用addBreaches方法来定义我们的违约
/**
* Define two breaches, one at 24 hours, and the next at 100 hours
*/
$sla->addBreaches([
new SLABreach('First Response', '24h'),
new SLABreach('Resolution', '100h'),
]);
现在,我们的SLA日程安排和SLA违约都已定义,我们只需要给出我们的主题的“创建时间”——或者我们的SLA开始时间——到status方法或duration方法。
// Given the time now is 14:00:00 29-07-2022
$status = $sla->status('05:35:40 25-07-2022'); // SLAStatus
$status->breaches; // [SLABreach] [0: { First Response } ]
$duration = $sla->duration('05:35:40 25-07-2022'); // CarbonInterval
$duration->forHumans(); // 1 day 15 hours
测试
composer test
贡献
有关详细信息,请参阅CONTRIBUTING。
鸣谢
许可
MIT许可证(MIT)。有关更多信息,请参阅许可文件。