Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
50.00% |
2 / 4 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 1 |
SchedulerFactory | |
50.00% |
2 / 4 |
|
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 1 |
create | |
50.00% |
2 / 4 |
|
0.00% |
0 / 1 |
6.00 |
1 | <?php |
2 | /** |
3 | * Jingga |
4 | * |
5 | * PHP Version 8.1 |
6 | * |
7 | * @package phpOMS\Utils\TaskSchedule |
8 | * @copyright Dennis Eichhorn |
9 | * @license OMS License 2.0 |
10 | * @version 1.0.0 |
11 | * @link https://jingga.app |
12 | */ |
13 | declare(strict_types=1); |
14 | |
15 | namespace phpOMS\Utils\TaskSchedule; |
16 | |
17 | use phpOMS\System\OperatingSystem; |
18 | use phpOMS\System\SystemType; |
19 | |
20 | /** |
21 | * Scheduler factory. |
22 | * |
23 | * @package phpOMS\Utils\TaskSchedule |
24 | * @license OMS License 2.0 |
25 | * @link https://jingga.app |
26 | * @since 1.0.0 |
27 | */ |
28 | final class SchedulerFactory |
29 | { |
30 | /** |
31 | * Create scheduler instance. |
32 | * |
33 | * @return SchedulerAbstract |
34 | * |
35 | * @throws \Exception |
36 | * |
37 | * @since 1.0.0 |
38 | */ |
39 | public static function create() : SchedulerAbstract |
40 | { |
41 | switch (OperatingSystem::getSystem()) { |
42 | case SystemType::WIN: |
43 | return new TaskScheduler(); |
44 | case SystemType::LINUX: |
45 | return new Cron(); |
46 | default: |
47 | throw new \Exception('Unsupported system.'); |
48 | } |
49 | } |
50 | } |