Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
50.00% covered (danger)
50.00%
2 / 4
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
TaskFactory
50.00% covered (danger)
50.00%
2 / 4
0.00% covered (danger)
0.00%
0 / 1
6.00
0.00% covered (danger)
0.00%
0 / 1
 create
50.00% covered (danger)
50.00%
2 / 4
0.00% covered (danger)
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 */
13declare(strict_types=1);
14
15namespace phpOMS\Utils\TaskSchedule;
16
17use phpOMS\System\OperatingSystem;
18use phpOMS\System\SystemType;
19
20/**
21 * Task factory.
22 *
23 * @package phpOMS\Utils\TaskSchedule
24 * @license OMS License 2.0
25 * @link    https://jingga.app
26 * @since   1.0.0
27 */
28final class TaskFactory
29{
30    /**
31     * Create task instance.
32     *
33     * @param string $id  Task id
34     * @param string $cmd Command to run
35     *
36     * @return TaskAbstract
37     *
38     * @throws \Exception This exception is thrown if the operating system is not supported
39     *
40     * @since 1.0.0
41     */
42    public static function create(string $id = '', string $cmd = '') : TaskAbstract
43    {
44        switch (OperatingSystem::getSystem()) {
45            case SystemType::WIN:
46                return new Schedule($id, $cmd);
47            case SystemType::LINUX:
48                return new CronJob($id, $cmd);
49            default:
50                throw new \Exception('Unsupported system.');
51        }
52    }
53}