These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | |||
3 | namespace PragmaRX\Health\Checkers; |
||
4 | |||
5 | use SebastianBergmann\Timer\Timer; |
||
6 | use PragmaRX\Health\Support\Result; |
||
7 | use PragmaRX\Health\Support\Target; |
||
8 | use PragmaRX\Health\Support\Traits\Database; |
||
9 | |||
10 | abstract class Base implements Contract |
||
11 | { |
||
12 | use Database; |
||
13 | |||
14 | /** |
||
15 | * @var Target |
||
16 | */ |
||
17 | protected $target; |
||
18 | |||
19 | /** |
||
20 | * Check target and store elapsed time. |
||
21 | */ |
||
22 | protected function checkAndStoreTime() |
||
23 | { |
||
24 | Timer::start(); |
||
25 | |||
26 | $result = $this->check(); |
||
27 | |||
28 | $result->elapsedTime = Timer::stop(); |
||
29 | |||
30 | return $result; |
||
31 | } |
||
32 | |||
33 | /** |
||
34 | * Create base directory for files. |
||
35 | * |
||
36 | * @param $fileName |
||
37 | */ |
||
38 | protected function makeDir($fileName) |
||
39 | { |
||
40 | $dir = dirname($fileName); |
||
41 | |||
42 | if (!file_exists($dir)) { |
||
43 | mkdir($dir, 0775, true); |
||
44 | } |
||
45 | } |
||
46 | |||
47 | /** |
||
48 | * Make a result. |
||
49 | * |
||
50 | * @param bool $healthy |
||
51 | * @param null $errorMessage |
||
52 | * @return Result |
||
53 | */ |
||
54 | public function makeResult($healthy = true, $errorMessage = null) |
||
55 | { |
||
56 | return new Result($healthy, $errorMessage); |
||
57 | } |
||
58 | |||
59 | /** |
||
60 | * Make a healthy result. |
||
61 | * |
||
62 | * @return Result |
||
63 | */ |
||
64 | protected function makeHealthyResult() |
||
65 | { |
||
66 | return $this->makeResult(); |
||
67 | } |
||
68 | |||
69 | /** |
||
70 | * Make a result from an exception. |
||
71 | * |
||
72 | * @param $exception |
||
73 | * @return Result |
||
74 | */ |
||
75 | protected function makeResultFromException($exception) |
||
76 | { |
||
77 | return $this->makeResult(false, $exception->getMessage()); |
||
78 | } |
||
79 | |||
80 | /** |
||
81 | * @param $resources |
||
82 | * @return mixed |
||
83 | */ |
||
84 | public function healthy($resources) |
||
85 | { |
||
86 | return $this->healthy; |
||
0 ignored issues
–
show
|
|||
87 | } |
||
88 | |||
89 | /** |
||
90 | * @param $resources |
||
91 | * @return mixed |
||
92 | */ |
||
93 | public function message($resources) |
||
94 | { |
||
95 | return $this->message; |
||
0 ignored issues
–
show
The property
message does not exist. Did you maybe forget to declare it?
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code: class MyClass { }
$x = new MyClass();
$x->foo = true;
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion: class MyClass {
public $foo;
}
$x = new MyClass();
$x->foo = true;
Loading history...
|
|||
96 | } |
||
97 | |||
98 | /** |
||
99 | * Save result to database. |
||
100 | * |
||
101 | * @param $result |
||
102 | * @return |
||
103 | */ |
||
104 | protected function saveToDatabase($result) |
||
105 | { |
||
106 | if ($this->databaseEnabled()) { |
||
107 | return $this->saveResultsToDatabase($this->target, $result); |
||
108 | } |
||
109 | } |
||
110 | |||
111 | /** |
||
112 | * @param $healthy |
||
113 | */ |
||
114 | public function setHealthy($healthy) |
||
115 | { |
||
116 | $this->healthy = $healthy; |
||
117 | } |
||
118 | |||
119 | /** |
||
120 | * @param $message |
||
121 | */ |
||
122 | public function setMessage($message) |
||
123 | { |
||
124 | $this->message = $message; |
||
125 | } |
||
126 | |||
127 | /** |
||
128 | * @return array |
||
129 | */ |
||
130 | public function healthArray() |
||
131 | { |
||
132 | return [ |
||
133 | 'healthy' => $this->healthy, |
||
134 | |||
135 | 'message' => $this->message, |
||
136 | ]; |
||
137 | } |
||
138 | |||
139 | /** |
||
140 | * Load cache. |
||
141 | * |
||
142 | * @return \Illuminate\Support\Collection |
||
143 | */ |
||
144 | View Code Duplication | public function load() |
|
145 | { |
||
146 | if (!file_exists($file = $this->getFileName())) { |
||
147 | return collect(); |
||
148 | } |
||
149 | |||
150 | return collect(json_decode(file_get_contents($file), true)); |
||
151 | } |
||
152 | |||
153 | /** |
||
154 | * Persist to database cache file. |
||
155 | * |
||
156 | * @param $data |
||
157 | */ |
||
158 | public function persist($data = null) |
||
159 | { |
||
160 | if (is_null($data)) { |
||
161 | $data = $this->database->toArray(); |
||
162 | } |
||
163 | |||
164 | if (!is_array($data)) { |
||
165 | $data = $data->toArray(); |
||
166 | } |
||
167 | |||
168 | $this->makeDir($this->getFileName()); |
||
169 | |||
170 | file_put_contents($this->getFileName(), json_encode($data)); |
||
171 | } |
||
172 | |||
173 | /** |
||
174 | * Get cache filename. |
||
175 | * |
||
176 | * @return string |
||
177 | */ |
||
178 | protected function getFileName() |
||
179 | { |
||
180 | return $this->target->saveTo ?? ''; |
||
181 | } |
||
182 | |||
183 | /** |
||
184 | * Target setter. |
||
185 | * |
||
186 | * @param $target |
||
187 | * @return $this |
||
188 | */ |
||
189 | public function setTarget($target) |
||
190 | { |
||
191 | $this->target = $target; |
||
192 | |||
193 | return $this; |
||
194 | } |
||
195 | |||
196 | public function checkTarget() |
||
197 | { |
||
198 | $result = $this->checkAndStoreTime(); |
||
199 | |||
200 | $result->checks = $this->saveToDatabase($result); |
||
201 | |||
202 | return $result; |
||
203 | } |
||
204 | } |
||
205 |
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion: