1 <?php
2
3 4 5 6 7 8 9
10
11 abstract class rex_cronjob
12 {
13 private $params = [];
14 private $message = '';
15
16 final public static function factory($class)
17 {
18 if (!rex_autoload::autoload($class)) {
19 return $class;
20 }
21
22 return new $class();
23 }
24
25 public function setParam($key, $value)
26 {
27 $this->params[$key] = $value;
28 }
29
30 public function setParams(array $params)
31 {
32 $this->params = $params;
33 }
34
35 public function getParam($key, $default = null)
36 {
37 if (isset($this->params[$key])) {
38 return $this->params[$key];
39 }
40
41 return $default;
42 }
43
44 public function getParams()
45 {
46 return $this->params;
47 }
48
49 public function __set($key, $value)
50 {
51 $this->setParam($key, $value);
52 }
53
54 public function __get($key)
55 {
56 return $this->getParam($key);
57 }
58
59 public function setMessage($message)
60 {
61 $this->message = $message;
62 }
63
64 public function getMessage()
65 {
66 return $this->message;
67 }
68
69 public function hasMessage()
70 {
71 return !empty($this->message);
72 }
73
74 abstract public function execute();
75
76 public function getTypeName()
77 {
78
79 return $this->getType();
80 }
81
82 final public function getType()
83 {
84 return get_class($this);
85 }
86
87 public function getEnvironments()
88 {
89
90 return ['frontend', 'backend', 'script'];
91 }
92
93 public function getParamFields()
94 {
95
96 return [];
97 }
98 }
99