julioserpone/sla-manager

一个用于计算和跟踪服务级别协议完成时间的PHP包

v1.0.2 2022-10-20 20:46 UTC

README

Logo for SLA Timer

Latest Version on Packagist Total Downloads GitHub Actions

一个用于计算和跟踪服务级别协议完成时间的PHP包。

灵感来源于sla-timer包。

特性

  • 🕚 简单的日程安排构建
  • ‼️ 定义违约
  • 🏝 假日及暂停时长
Hi, I'm Julio & I'm currently looking for a Laravel job. Please reach out to me via twitter, or click this link.

安装

您可以通过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)。有关更多信息,请参阅许可文件