Test Failed
Push — trunk ( e02d87...314b8c )
by SuperNova.WS
07:20
created

Watchdog::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
nc 1
nop 1
dl 0
loc 3
rs 10
c 1
b 0
f 0
1
<?php
2
/**
3
 * Created by Gorlum 15.06.2017 5:07
4
 */
5
6
namespace Core\Scheduler;
7
8
use Exception;
9
use classConfig;
10
use Core\GlobalContainer;
11
12
class Watchdog {
13
  /**
14
   * @var GlobalContainer $gc
15
   */
16
  protected $gc;
17
  /**
18
   * @var \classConfig $config
19
   */
20
  protected $config;
21
22
  /**
23
   * @var TaskConditional[] $taskList
24
   */
25
  protected $taskList = [];
26
27
  /**
28
   * Watchdog constructor.
29
   *
30
   * @param GlobalContainer $gc
31
   */
32
  public function __construct(GlobalContainer $gc) {
33
    $this->gc     = $gc;
34
    $this->config = $this->gc->config;
35
  }
36
37
  /**
38
   * @param TaskConditional $task
39
   * @param string          $name Optional. Task name
40
   */
41
  public function register(TaskConditional $task, $name = '') {
42
    if (empty($name)) {
43
      $this->taskList[] = $task;
44
    } else {
45
      $this->taskList[$name] = $task;
46
    }
47
  }
48
49
  /**
50
   * @param $name
51
   *
52
   * @return TaskConditional|null
53
   */
54
  public function getTask($name) {
55
    return !empty($this->taskList[$name]) ? $this->taskList[$name] : null;
56
  }
57
58
  public function execute() {
59
    foreach ($this->taskList as $task) {
60
      try {
61
        $task();
62
      } catch (Exception $e) {
0 ignored issues
show
Coding Style Comprehensibility introduced by
Consider adding a comment why this CATCH block is empty.
Loading history...
63
      }
64
    }
65
  }
66
67
  /**
68
   * @param string   $configName - config record name
69
   * @param int      $timeDiff   - interval from SN_TIME_NOW in seconds
70
   * @param callable $callable   - function to call when condition is met
71
   * @param int      $configType - type of config record - unixtime or Sql timestamp
72
   * @param bool     $forceLoad  - should config value be read from DB
73
   *
74
   * @deprecated
75
   */
76
  public function checkConfigTimeDiff($configName, $timeDiff, $callable, $configType = classConfig::DATE_TYPE_UNIX, $forceLoad = false) {
77
    $configValue = $forceLoad ? $this->config->db_loadItem($configName) : $this->config[$configName];
78
    $configType == classConfig::DATE_TYPE_SQL_STRING ? $configValue = strtotime($configValue, SN_TIME_NOW) : false;
79
80
    if (SN_TIME_NOW - $configValue > $timeDiff) {
81
      $callable();
82
    }
83
84
  }
85
86
}
87