riesenia / scheduler
提供简单调度功能的PHP类
dev-master
2019-05-24 12:26 UTC
Requires
- php: >=7.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ~2.14
- phpspec/phpspec: ~5.1
- phpstan/phpstan: ~0.11.0
- rshop/php-cs-fixer-config: ~2.0
This package is auto-updated.
Last update: 2024-08-25 06:38:03 UTC
README
提供基本调度功能的PHP脚本。
安装
使用 composer require riesenia/scheduler
安装最新版本
或将它添加到您的 composer.json 文件作为依赖项
{ "require": { "riesenia/scheduler": "~1.0" } }
使用方法
构造函数接受两个参数
- items - 整数数组 - 项目ID
- terms - TermInterface 数组
use Riesenia\Scheduler\Scheduler; $items = [1, 2]; $terms = [$term1, $term2, $term3, $term4]; $scheduler = new Scheduler($items, $terms);
添加术语和项目
项目和术语也可以单独添加。所有添加的术语都必须实现 TermInterface。
$scheduler->addItem(3); $scheduler->addTerm($term5);
TermInterface
术语通过其开始和结束日期(getFrom() 和 getTo() 方法)定义。此外,它可以通过在 getLockedId() 方法中提供其ID来锁定到特定的项目。
调度
调用 schedule() 方法将术语正确地分配给项目。如果这不可能,调度器将抛出包含重叠术语信息的 SchedulerException。
use Riesenia\Scheduler\SchedulerException; try { $scheduler->schedule(); // get all the terms with reassigned item IDs $scheduler->getTerms(); } catch (SchedulerException $e) { \var_dump($e->getConflictingTerms()); }