@@ -57,8 +57,8 @@ |
||
57 | 57 | #[ReturnTypeWillChange] |
58 | 58 | public function gc($maxlifetime) |
59 | 59 | { |
60 | - foreach ($this->files->getFiles($this->directory) as $filename) { |
|
61 | - if ($this->files->time($filename) < time() - $maxlifetime) { |
|
60 | + foreach ($this->files->getFiles($this->directory) as $filename){ |
|
61 | + if ($this->files->time($filename) < time() - $maxlifetime){ |
|
62 | 62 | $this->files->delete($filename); |
63 | 63 | } |
64 | 64 | } |
@@ -57,8 +57,10 @@ |
||
57 | 57 | #[ReturnTypeWillChange] |
58 | 58 | public function gc($maxlifetime) |
59 | 59 | { |
60 | - foreach ($this->files->getFiles($this->directory) as $filename) { |
|
61 | - if ($this->files->time($filename) < time() - $maxlifetime) { |
|
60 | + foreach ($this->files->getFiles($this->directory) as $filename) |
|
61 | + { |
|
62 | + if ($this->files->time($filename) < time() - $maxlifetime) |
|
63 | + { |
|
62 | 64 | $this->files->delete($filename); |
63 | 65 | } |
64 | 66 | } |
@@ -61,7 +61,7 @@ discard block |
||
61 | 61 | $this->clientSignature = $clientSignature; |
62 | 62 | $this->lifetime = $lifetime; |
63 | 63 | |
64 | - if (!empty($id) && $this->validID($id)) { |
|
64 | + if (!empty($id) && $this->validID($id)){ |
|
65 | 65 | $this->id = $id; |
66 | 66 | } |
67 | 67 | } |
@@ -92,24 +92,24 @@ discard block |
||
92 | 92 | */ |
93 | 93 | public function resume(): void |
94 | 94 | { |
95 | - if ($this->isStarted()) { |
|
95 | + if ($this->isStarted()){ |
|
96 | 96 | return; |
97 | 97 | } |
98 | 98 | |
99 | - if (!empty($this->id)) { |
|
99 | + if (!empty($this->id)){ |
|
100 | 100 | session_id($this->id); |
101 | - } else { |
|
101 | + }else{ |
|
102 | 102 | // always new id |
103 | 103 | session_id(session_create_id()); |
104 | 104 | } |
105 | 105 | |
106 | - try { |
|
106 | + try{ |
|
107 | 107 | session_start(['use_cookies' => false]); |
108 | - } catch (Throwable $e) { |
|
108 | + }catch (Throwable $e){ |
|
109 | 109 | throw new SessionException('Unable to start session', $e->getCode(), $e); |
110 | 110 | } |
111 | 111 | |
112 | - if (empty($this->id)) { |
|
112 | + if (empty($this->id)){ |
|
113 | 113 | //Sign newly created session |
114 | 114 | $_SESSION[self::CLIENT_SIGNATURE] = $this->clientSignature; |
115 | 115 | $_SESSION[self::SESSION_CREATED] = time(); |
@@ -120,7 +120,7 @@ discard block |
||
120 | 120 | $this->started = true; |
121 | 121 | |
122 | 122 | //Ensure that session is valid |
123 | - if (!$this->validSession()) { |
|
123 | + if (!$this->validSession()){ |
|
124 | 124 | $this->invalidateSession(); |
125 | 125 | } |
126 | 126 | } |
@@ -159,7 +159,7 @@ discard block |
||
159 | 159 | */ |
160 | 160 | public function commit(): bool |
161 | 161 | { |
162 | - if (!$this->isStarted()) { |
|
162 | + if (!$this->isStarted()){ |
|
163 | 163 | return false; |
164 | 164 | } |
165 | 165 | |
@@ -174,7 +174,7 @@ discard block |
||
174 | 174 | */ |
175 | 175 | public function abort(): bool |
176 | 176 | { |
177 | - if (!$this->isStarted()) { |
|
177 | + if (!$this->isStarted()){ |
|
178 | 178 | return false; |
179 | 179 | } |
180 | 180 | |
@@ -215,17 +215,17 @@ discard block |
||
215 | 215 | if ( |
216 | 216 | !array_key_exists(self::CLIENT_SIGNATURE, $_SESSION) |
217 | 217 | || !array_key_exists(self::SESSION_CREATED, $_SESSION) |
218 | - ) { |
|
218 | + ){ |
|
219 | 219 | //Missing session signature or timestamp! |
220 | 220 | return false; |
221 | 221 | } |
222 | 222 | |
223 | - if ($_SESSION[self::SESSION_CREATED] < time() - $this->lifetime) { |
|
223 | + if ($_SESSION[self::SESSION_CREATED] < time() - $this->lifetime){ |
|
224 | 224 | //Session expired |
225 | 225 | return false; |
226 | 226 | } |
227 | 227 | |
228 | - if (!hash_equals($_SESSION[self::CLIENT_SIGNATURE], $this->clientSignature)) { |
|
228 | + if (!hash_equals($_SESSION[self::CLIENT_SIGNATURE], $this->clientSignature)){ |
|
229 | 229 | //Signatures do not match |
230 | 230 | return false; |
231 | 231 | } |
@@ -61,7 +61,8 @@ discard block |
||
61 | 61 | $this->clientSignature = $clientSignature; |
62 | 62 | $this->lifetime = $lifetime; |
63 | 63 | |
64 | - if (!empty($id) && $this->validID($id)) { |
|
64 | + if (!empty($id) && $this->validID($id)) |
|
65 | + { |
|
65 | 66 | $this->id = $id; |
66 | 67 | } |
67 | 68 | } |
@@ -92,24 +93,32 @@ discard block |
||
92 | 93 | */ |
93 | 94 | public function resume(): void |
94 | 95 | { |
95 | - if ($this->isStarted()) { |
|
96 | + if ($this->isStarted()) |
|
97 | + { |
|
96 | 98 | return; |
97 | 99 | } |
98 | 100 | |
99 | - if (!empty($this->id)) { |
|
101 | + if (!empty($this->id)) |
|
102 | + { |
|
100 | 103 | session_id($this->id); |
101 | - } else { |
|
104 | + } |
|
105 | + else |
|
106 | + { |
|
102 | 107 | // always new id |
103 | 108 | session_id(session_create_id()); |
104 | 109 | } |
105 | 110 | |
106 | - try { |
|
111 | + try |
|
112 | + { |
|
107 | 113 | session_start(['use_cookies' => false]); |
108 | - } catch (Throwable $e) { |
|
114 | + } |
|
115 | + catch (Throwable $e) |
|
116 | + { |
|
109 | 117 | throw new SessionException('Unable to start session', $e->getCode(), $e); |
110 | 118 | } |
111 | 119 | |
112 | - if (empty($this->id)) { |
|
120 | + if (empty($this->id)) |
|
121 | + { |
|
113 | 122 | //Sign newly created session |
114 | 123 | $_SESSION[self::CLIENT_SIGNATURE] = $this->clientSignature; |
115 | 124 | $_SESSION[self::SESSION_CREATED] = time(); |
@@ -120,7 +129,8 @@ discard block |
||
120 | 129 | $this->started = true; |
121 | 130 | |
122 | 131 | //Ensure that session is valid |
123 | - if (!$this->validSession()) { |
|
132 | + if (!$this->validSession()) |
|
133 | + { |
|
124 | 134 | $this->invalidateSession(); |
125 | 135 | } |
126 | 136 | } |
@@ -159,7 +169,8 @@ discard block |
||
159 | 169 | */ |
160 | 170 | public function commit(): bool |
161 | 171 | { |
162 | - if (!$this->isStarted()) { |
|
172 | + if (!$this->isStarted()) |
|
173 | + { |
|
163 | 174 | return false; |
164 | 175 | } |
165 | 176 | |
@@ -174,7 +185,8 @@ discard block |
||
174 | 185 | */ |
175 | 186 | public function abort(): bool |
176 | 187 | { |
177 | - if (!$this->isStarted()) { |
|
188 | + if (!$this->isStarted()) |
|
189 | + { |
|
178 | 190 | return false; |
179 | 191 | } |
180 | 192 | |
@@ -220,12 +232,14 @@ discard block |
||
220 | 232 | return false; |
221 | 233 | } |
222 | 234 | |
223 | - if ($_SESSION[self::SESSION_CREATED] < time() - $this->lifetime) { |
|
235 | + if ($_SESSION[self::SESSION_CREATED] < time() - $this->lifetime) |
|
236 | + { |
|
224 | 237 | //Session expired |
225 | 238 | return false; |
226 | 239 | } |
227 | 240 | |
228 | - if (!hash_equals($_SESSION[self::CLIENT_SIGNATURE], $this->clientSignature)) { |
|
241 | + if (!hash_equals($_SESSION[self::CLIENT_SIGNATURE], $this->clientSignature)) |
|
242 | + { |
|
229 | 243 | //Signatures do not match |
230 | 244 | return false; |
231 | 245 | } |
@@ -36,15 +36,15 @@ |
||
36 | 36 | |
37 | 37 | public function initSession(string $clientSignature, string $id = null): SessionInterface |
38 | 38 | { |
39 | - if (session_status() === PHP_SESSION_ACTIVE) { |
|
39 | + if (session_status() === PHP_SESSION_ACTIVE){ |
|
40 | 40 | throw new MultipleSessionException('Unable to initiate session, session already started'); |
41 | 41 | } |
42 | 42 | |
43 | 43 | // Initiating proper session handler |
44 | - if ($this->config->getHandler() !== null) { |
|
45 | - try { |
|
44 | + if ($this->config->getHandler() !== null){ |
|
45 | + try{ |
|
46 | 46 | $handler = $this->config->getHandler()->resolve($this->factory); |
47 | - } catch (Throwable | ContainerExceptionInterface $e) { |
|
47 | + }catch (Throwable | ContainerExceptionInterface $e){ |
|
48 | 48 | throw new SessionException($e->getMessage(), $e->getCode(), $e); |
49 | 49 | } |
50 | 50 |
@@ -36,15 +36,20 @@ |
||
36 | 36 | |
37 | 37 | public function initSession(string $clientSignature, string $id = null): SessionInterface |
38 | 38 | { |
39 | - if (session_status() === PHP_SESSION_ACTIVE) { |
|
39 | + if (session_status() === PHP_SESSION_ACTIVE) |
|
40 | + { |
|
40 | 41 | throw new MultipleSessionException('Unable to initiate session, session already started'); |
41 | 42 | } |
42 | 43 | |
43 | 44 | // Initiating proper session handler |
44 | - if ($this->config->getHandler() !== null) { |
|
45 | - try { |
|
45 | + if ($this->config->getHandler() !== null) |
|
46 | + { |
|
47 | + try |
|
48 | + { |
|
46 | 49 | $handler = $this->config->getHandler()->resolve($this->factory); |
47 | - } catch (Throwable | ContainerExceptionInterface $e) { |
|
50 | + } |
|
51 | + catch (Throwable | ContainerExceptionInterface $e) |
|
52 | + { |
|
48 | 53 | throw new SessionException($e->getMessage(), $e->getCode(), $e); |
49 | 54 | } |
50 | 55 |
@@ -25,12 +25,12 @@ discard block |
||
25 | 25 | */ |
26 | 26 | public static function isCLI(): bool |
27 | 27 | { |
28 | - if (!empty(getenv('RR'))) { |
|
28 | + if (!empty(getenv('RR'))){ |
|
29 | 29 | // Do not treat RoadRunner as CLI. |
30 | 30 | return false; |
31 | 31 | } |
32 | 32 | |
33 | - if (php_sapi_name() === 'cli') { |
|
33 | + if (php_sapi_name() === 'cli'){ |
|
34 | 34 | return true; |
35 | 35 | } |
36 | 36 | |
@@ -46,12 +46,12 @@ discard block |
||
46 | 46 | */ |
47 | 47 | public static function isColorsSupported($stream = STDOUT): bool |
48 | 48 | { |
49 | - if ('Hyper' === getenv('TERM_PROGRAM')) { |
|
49 | + if ('Hyper' === getenv('TERM_PROGRAM')){ |
|
50 | 50 | return true; |
51 | 51 | } |
52 | 52 | |
53 | - try { |
|
54 | - if (\DIRECTORY_SEPARATOR === '\\') { |
|
53 | + try{ |
|
54 | + if (\DIRECTORY_SEPARATOR === '\\'){ |
|
55 | 55 | return ( |
56 | 56 | function_exists('sapi_windows_vt100_support') |
57 | 57 | && @sapi_windows_vt100_support($stream) |
@@ -61,7 +61,7 @@ discard block |
||
61 | 61 | } |
62 | 62 | |
63 | 63 | return @stream_isatty($stream); |
64 | - } catch (Throwable $e) { |
|
64 | + }catch (Throwable $e){ |
|
65 | 65 | return false; |
66 | 66 | } |
67 | 67 | } |
@@ -25,12 +25,14 @@ discard block |
||
25 | 25 | */ |
26 | 26 | public static function isCLI(): bool |
27 | 27 | { |
28 | - if (!empty(getenv('RR'))) { |
|
28 | + if (!empty(getenv('RR'))) |
|
29 | + { |
|
29 | 30 | // Do not treat RoadRunner as CLI. |
30 | 31 | return false; |
31 | 32 | } |
32 | 33 | |
33 | - if (php_sapi_name() === 'cli') { |
|
34 | + if (php_sapi_name() === 'cli') |
|
35 | + { |
|
34 | 36 | return true; |
35 | 37 | } |
36 | 38 | |
@@ -46,12 +48,15 @@ discard block |
||
46 | 48 | */ |
47 | 49 | public static function isColorsSupported($stream = STDOUT): bool |
48 | 50 | { |
49 | - if ('Hyper' === getenv('TERM_PROGRAM')) { |
|
51 | + if ('Hyper' === getenv('TERM_PROGRAM')) |
|
52 | + { |
|
50 | 53 | return true; |
51 | 54 | } |
52 | 55 | |
53 | - try { |
|
54 | - if (\DIRECTORY_SEPARATOR === '\\') { |
|
56 | + try |
|
57 | + { |
|
58 | + if (\DIRECTORY_SEPARATOR === '\\') |
|
59 | + { |
|
55 | 60 | return ( |
56 | 61 | function_exists('sapi_windows_vt100_support') |
57 | 62 | && @sapi_windows_vt100_support($stream) |
@@ -61,7 +66,9 @@ discard block |
||
61 | 66 | } |
62 | 67 | |
63 | 68 | return @stream_isatty($stream); |
64 | - } catch (Throwable $e) { |
|
69 | + } |
|
70 | + catch (Throwable $e) |
|
71 | + { |
|
65 | 72 | return false; |
66 | 73 | } |
67 | 74 | } |
@@ -62,7 +62,7 @@ discard block |
||
62 | 62 | |
63 | 63 | public function __construct(LoggerInterface $logger = null) |
64 | 64 | { |
65 | - if ($logger !== null) { |
|
65 | + if ($logger !== null){ |
|
66 | 66 | $this->setLogger($logger); |
67 | 67 | } |
68 | 68 | } |
@@ -88,7 +88,7 @@ discard block |
||
88 | 88 | $r = $this->getRenderer($target); |
89 | 89 | $dump = $r->wrapContent($this->renderValue($r, $value)); |
90 | 90 | |
91 | - switch ($target) { |
|
91 | + switch ($target){ |
|
92 | 92 | case self::OUTPUT: |
93 | 93 | echo $dump; |
94 | 94 | break; |
@@ -98,10 +98,10 @@ discard block |
||
98 | 98 | return $dump; |
99 | 99 | |
100 | 100 | case self::LOGGER: |
101 | - if ($this->logger === null) { |
|
101 | + if ($this->logger === null){ |
|
102 | 102 | throw new DumperException('Unable to dump value to log, no associated LoggerInterface.'); |
103 | 103 | } |
104 | - $this->logger->debug((string) $dump); |
|
104 | + $this->logger->debug((string)$dump); |
|
105 | 105 | break; |
106 | 106 | |
107 | 107 | case self::ERROR_LOG: |
@@ -119,7 +119,7 @@ discard block |
||
119 | 119 | */ |
120 | 120 | public function setRenderer(int $target, RendererInterface $renderer): Dumper |
121 | 121 | { |
122 | - if (!isset($this->targets[$target])) { |
|
122 | + if (!isset($this->targets[$target])){ |
|
123 | 123 | throw new DumperException(sprintf('Undefined dump target %d', $target)); |
124 | 124 | } |
125 | 125 | |
@@ -136,19 +136,19 @@ discard block |
||
136 | 136 | */ |
137 | 137 | private function getRenderer(int $target): RendererInterface |
138 | 138 | { |
139 | - if ($target == self::OUTPUT && System::isCLI()) { |
|
140 | - if (System::isColorsSupported(STDOUT)) { |
|
139 | + if ($target == self::OUTPUT && System::isCLI()){ |
|
140 | + if (System::isColorsSupported(STDOUT)){ |
|
141 | 141 | $target = self::OUTPUT_CLI_COLORS; |
142 | - } else { |
|
142 | + }else{ |
|
143 | 143 | $target = self::OUTPUT_CLI; |
144 | 144 | } |
145 | 145 | } |
146 | 146 | |
147 | - if (!isset($this->targets[$target])) { |
|
147 | + if (!isset($this->targets[$target])){ |
|
148 | 148 | throw new DumperException(sprintf('Undefined dump target %d', $target)); |
149 | 149 | } |
150 | 150 | |
151 | - if (is_string($this->targets[$target])) { |
|
151 | + if (is_string($this->targets[$target])){ |
|
152 | 152 | $this->targets[$target] = new $this->targets[$target](); |
153 | 153 | } |
154 | 154 | |
@@ -171,32 +171,32 @@ discard block |
||
171 | 171 | int $level = 0, |
172 | 172 | bool $hideHeader = false |
173 | 173 | ): string { |
174 | - if (!$hideHeader && !empty($name)) { |
|
175 | - $header = $r->indent($level) . $r->apply($name, 'name') . $r->apply(' = ', 'syntax', '='); |
|
176 | - } else { |
|
174 | + if (!$hideHeader && !empty($name)){ |
|
175 | + $header = $r->indent($level).$r->apply($name, 'name').$r->apply(' = ', 'syntax', '='); |
|
176 | + }else{ |
|
177 | 177 | $header = $r->indent($level); |
178 | 178 | } |
179 | 179 | |
180 | - if ($level > $this->maxLevel) { |
|
180 | + if ($level > $this->maxLevel){ |
|
181 | 181 | //Renderer is not reference based, we can't dump too deep values |
182 | - return $r->indent($level) . $r->apply('-too deep-', 'maxLevel') . "\n"; |
|
182 | + return $r->indent($level).$r->apply('-too deep-', 'maxLevel')."\n"; |
|
183 | 183 | } |
184 | 184 | |
185 | 185 | $type = strtolower(gettype($value)); |
186 | 186 | |
187 | - if ($type === 'array') { |
|
188 | - return $header . $this->renderArray($r, $value, $level, $hideHeader); |
|
187 | + if ($type === 'array'){ |
|
188 | + return $header.$this->renderArray($r, $value, $level, $hideHeader); |
|
189 | 189 | } |
190 | 190 | |
191 | - if ($type === 'object') { |
|
192 | - return $header . $this->renderObject($r, $value, $level, $hideHeader); |
|
191 | + if ($type === 'object'){ |
|
192 | + return $header.$this->renderObject($r, $value, $level, $hideHeader); |
|
193 | 193 | } |
194 | 194 | |
195 | - if ($type === 'resource') { |
|
195 | + if ($type === 'resource'){ |
|
196 | 196 | //No need to dump resource value |
197 | - $element = get_resource_type($value) . ' resource '; |
|
197 | + $element = get_resource_type($value).' resource '; |
|
198 | 198 | |
199 | - return $header . $r->apply($element, 'type', 'resource') . "\n"; |
|
199 | + return $header.$r->apply($element, 'type', 'resource')."\n"; |
|
200 | 200 | } |
201 | 201 | |
202 | 202 | //Value length |
@@ -206,7 +206,7 @@ discard block |
||
206 | 206 | $header .= $r->apply("{$type}({$length})", 'type', $type); |
207 | 207 | |
208 | 208 | $element = null; |
209 | - switch ($type) { |
|
209 | + switch ($type){ |
|
210 | 210 | case 'string': |
211 | 211 | $element = $r->escapeStrings() ? htmlspecialchars($value) : $value; |
212 | 212 | break; |
@@ -216,31 +216,31 @@ discard block |
||
216 | 216 | break; |
217 | 217 | |
218 | 218 | default: |
219 | - if ($value !== null) { |
|
219 | + if ($value !== null){ |
|
220 | 220 | //Not showing null value, type is enough |
221 | 221 | $element = var_export($value, true); |
222 | 222 | } |
223 | 223 | } |
224 | 224 | |
225 | 225 | //Including value |
226 | - return $header . ' ' . $r->apply($element, 'value', $type) . "\n"; |
|
226 | + return $header.' '.$r->apply($element, 'value', $type)."\n"; |
|
227 | 227 | } |
228 | 228 | |
229 | 229 | private function renderArray(RendererInterface $r, array $array, int $level, bool $hideHeader = false): string |
230 | 230 | { |
231 | - if (!$hideHeader) { |
|
231 | + if (!$hideHeader){ |
|
232 | 232 | $count = count($array); |
233 | 233 | |
234 | 234 | //Array size and scope |
235 | - $output = $r->apply("array({$count})", 'type', 'array') . "\n"; |
|
236 | - $output .= $r->indent($level) . $r->apply('[', 'syntax', '[') . "\n"; |
|
237 | - } else { |
|
235 | + $output = $r->apply("array({$count})", 'type', 'array')."\n"; |
|
236 | + $output .= $r->indent($level).$r->apply('[', 'syntax', '[')."\n"; |
|
237 | + }else{ |
|
238 | 238 | $output = ''; |
239 | 239 | } |
240 | 240 | |
241 | - foreach ($array as $key => $value) { |
|
242 | - if (!is_numeric($key)) { |
|
243 | - if (is_string($key) && $r->escapeStrings()) { |
|
241 | + foreach ($array as $key => $value){ |
|
242 | + if (!is_numeric($key)){ |
|
243 | + if (is_string($key) && $r->escapeStrings()){ |
|
244 | 244 | $key = htmlspecialchars($key); |
245 | 245 | } |
246 | 246 | |
@@ -250,9 +250,9 @@ discard block |
||
250 | 250 | $output .= $this->renderValue($r, $value, "[{$key}]", $level + 1); |
251 | 251 | } |
252 | 252 | |
253 | - if (!$hideHeader) { |
|
253 | + if (!$hideHeader){ |
|
254 | 254 | //Closing array scope |
255 | - $output .= $r->indent($level) . $r->apply(']', 'syntax', ']') . "\n"; |
|
255 | + $output .= $r->indent($level).$r->apply(']', 'syntax', ']')."\n"; |
|
256 | 256 | } |
257 | 257 | |
258 | 258 | return $output; |
@@ -269,47 +269,47 @@ discard block |
||
269 | 269 | bool $hideHeader = false, |
270 | 270 | string $class = '' |
271 | 271 | ): string { |
272 | - if (!$hideHeader) { |
|
273 | - $type = ($class ?: get_class($value)) . ' object '; |
|
272 | + if (!$hideHeader){ |
|
273 | + $type = ($class ?: get_class($value)).' object '; |
|
274 | 274 | |
275 | - $header = $r->apply($type, 'type', 'object') . "\n"; |
|
276 | - $header .= $r->indent($level) . $r->apply('(', 'syntax', '(') . "\n"; |
|
277 | - } else { |
|
275 | + $header = $r->apply($type, 'type', 'object')."\n"; |
|
276 | + $header .= $r->indent($level).$r->apply('(', 'syntax', '(')."\n"; |
|
277 | + }else{ |
|
278 | 278 | $header = ''; |
279 | 279 | } |
280 | 280 | |
281 | 281 | //Let's use method specifically created for dumping |
282 | - if (method_exists($value, '__debugInfo') || $value instanceof Closure) { |
|
283 | - if ($value instanceof Closure) { |
|
282 | + if (method_exists($value, '__debugInfo') || $value instanceof Closure){ |
|
283 | + if ($value instanceof Closure){ |
|
284 | 284 | $debugInfo = $this->describeClosure($value); |
285 | - } else { |
|
285 | + }else{ |
|
286 | 286 | $debugInfo = $value->__debugInfo(); |
287 | 287 | } |
288 | 288 | |
289 | - if (is_array($debugInfo)) { |
|
289 | + if (is_array($debugInfo)){ |
|
290 | 290 | //Pretty view |
291 | 291 | $debugInfo = (object)$debugInfo; |
292 | 292 | } |
293 | 293 | |
294 | - if (is_object($debugInfo)) { |
|
294 | + if (is_object($debugInfo)){ |
|
295 | 295 | //We are not including syntax elements here |
296 | 296 | return $this->renderObject($r, $debugInfo, $level, false, get_class($value)); |
297 | 297 | } |
298 | 298 | |
299 | 299 | return $header |
300 | 300 | . $this->renderValue($r, $debugInfo, '', $level + (is_scalar($value)), true) |
301 | - . $r->indent($level) . $r->apply(')', 'syntax', ')') . "\n"; |
|
301 | + . $r->indent($level).$r->apply(')', 'syntax', ')')."\n"; |
|
302 | 302 | } |
303 | 303 | |
304 | 304 | $refection = new ReflectionObject($value); |
305 | 305 | |
306 | 306 | $output = ''; |
307 | - foreach ($refection->getProperties() as $property) { |
|
307 | + foreach ($refection->getProperties() as $property){ |
|
308 | 308 | $output .= $this->renderProperty($r, $value, $property, $level); |
309 | 309 | } |
310 | 310 | |
311 | 311 | //Header, content, footer |
312 | - return $header . $output . $r->indent($level) . $r->apply(')', 'syntax', ')') . "\n"; |
|
312 | + return $header.$output.$r->indent($level).$r->apply(')', 'syntax', ')')."\n"; |
|
313 | 313 | } |
314 | 314 | |
315 | 315 | /** |
@@ -318,7 +318,7 @@ discard block |
||
318 | 318 | */ |
319 | 319 | private function renderProperty(RendererInterface $r, $value, ReflectionProperty $p, int $level): string |
320 | 320 | { |
321 | - if ($p->isStatic()) { |
|
321 | + if ($p->isStatic()){ |
|
322 | 322 | return ''; |
323 | 323 | } |
324 | 324 | |
@@ -326,7 +326,7 @@ discard block |
||
326 | 326 | !($value instanceof stdClass) |
327 | 327 | && is_string($p->getDocComment()) |
328 | 328 | && strpos($p->getDocComment(), '@internal') !== false |
329 | - ) { |
|
329 | + ){ |
|
330 | 330 | // Memory loop while reading doc comment for stdClass variables? |
331 | 331 | // Report a PHP bug about treating comment INSIDE property declaration as doc comment. |
332 | 332 | return ''; |
@@ -338,11 +338,11 @@ discard block |
||
338 | 338 | //To read private and protected properties |
339 | 339 | $p->setAccessible(true); |
340 | 340 | |
341 | - if ($value instanceof stdClass) { |
|
341 | + if ($value instanceof stdClass){ |
|
342 | 342 | $name = $r->apply($p->getName(), 'dynamic'); |
343 | - } else { |
|
343 | + }else{ |
|
344 | 344 | //Property name includes access level |
345 | - $name = $p->getName() . $r->apply(':' . $access, 'access', $access); |
|
345 | + $name = $p->getName().$r->apply(':'.$access, 'access', $access); |
|
346 | 346 | } |
347 | 347 | |
348 | 348 | return $this->renderValue($r, $p->getValue($value), $name, $level + 1); |
@@ -353,14 +353,14 @@ discard block |
||
353 | 353 | */ |
354 | 354 | private function describeClosure(Closure $closure): array |
355 | 355 | { |
356 | - try { |
|
356 | + try{ |
|
357 | 357 | $r = new ReflectionFunction($closure); |
358 | - } catch (ReflectionException $e) { |
|
358 | + }catch (ReflectionException $e){ |
|
359 | 359 | return ['closure' => 'unable to resolve']; |
360 | 360 | } |
361 | 361 | |
362 | 362 | return [ |
363 | - 'name' => $r->getName() . " (lines {$r->getStartLine()}:{$r->getEndLine()})", |
|
363 | + 'name' => $r->getName()." (lines {$r->getStartLine()}:{$r->getEndLine()})", |
|
364 | 364 | 'file' => $r->getFileName(), |
365 | 365 | 'this' => $r->getClosureThis(), |
366 | 366 | ]; |
@@ -373,9 +373,9 @@ discard block |
||
373 | 373 | */ |
374 | 374 | private function getAccess(ReflectionProperty $p): string |
375 | 375 | { |
376 | - if ($p->isPrivate()) { |
|
376 | + if ($p->isPrivate()){ |
|
377 | 377 | return 'private'; |
378 | - } elseif ($p->isProtected()) { |
|
378 | + } elseif ($p->isProtected()){ |
|
379 | 379 | return 'protected'; |
380 | 380 | } |
381 | 381 |
@@ -62,7 +62,8 @@ discard block |
||
62 | 62 | |
63 | 63 | public function __construct(LoggerInterface $logger = null) |
64 | 64 | { |
65 | - if ($logger !== null) { |
|
65 | + if ($logger !== null) |
|
66 | + { |
|
66 | 67 | $this->setLogger($logger); |
67 | 68 | } |
68 | 69 | } |
@@ -88,7 +89,8 @@ discard block |
||
88 | 89 | $r = $this->getRenderer($target); |
89 | 90 | $dump = $r->wrapContent($this->renderValue($r, $value)); |
90 | 91 | |
91 | - switch ($target) { |
|
92 | + switch ($target) |
|
93 | + { |
|
92 | 94 | case self::OUTPUT: |
93 | 95 | echo $dump; |
94 | 96 | break; |
@@ -98,7 +100,8 @@ discard block |
||
98 | 100 | return $dump; |
99 | 101 | |
100 | 102 | case self::LOGGER: |
101 | - if ($this->logger === null) { |
|
103 | + if ($this->logger === null) |
|
104 | + { |
|
102 | 105 | throw new DumperException('Unable to dump value to log, no associated LoggerInterface.'); |
103 | 106 | } |
104 | 107 | $this->logger->debug((string) $dump); |
@@ -119,7 +122,8 @@ discard block |
||
119 | 122 | */ |
120 | 123 | public function setRenderer(int $target, RendererInterface $renderer): Dumper |
121 | 124 | { |
122 | - if (!isset($this->targets[$target])) { |
|
125 | + if (!isset($this->targets[$target])) |
|
126 | + { |
|
123 | 127 | throw new DumperException(sprintf('Undefined dump target %d', $target)); |
124 | 128 | } |
125 | 129 | |
@@ -136,19 +140,25 @@ discard block |
||
136 | 140 | */ |
137 | 141 | private function getRenderer(int $target): RendererInterface |
138 | 142 | { |
139 | - if ($target == self::OUTPUT && System::isCLI()) { |
|
140 | - if (System::isColorsSupported(STDOUT)) { |
|
143 | + if ($target == self::OUTPUT && System::isCLI()) |
|
144 | + { |
|
145 | + if (System::isColorsSupported(STDOUT)) |
|
146 | + { |
|
141 | 147 | $target = self::OUTPUT_CLI_COLORS; |
142 | - } else { |
|
148 | + } |
|
149 | + else |
|
150 | + { |
|
143 | 151 | $target = self::OUTPUT_CLI; |
144 | 152 | } |
145 | 153 | } |
146 | 154 | |
147 | - if (!isset($this->targets[$target])) { |
|
155 | + if (!isset($this->targets[$target])) |
|
156 | + { |
|
148 | 157 | throw new DumperException(sprintf('Undefined dump target %d', $target)); |
149 | 158 | } |
150 | 159 | |
151 | - if (is_string($this->targets[$target])) { |
|
160 | + if (is_string($this->targets[$target])) |
|
161 | + { |
|
152 | 162 | $this->targets[$target] = new $this->targets[$target](); |
153 | 163 | } |
154 | 164 | |
@@ -171,28 +181,35 @@ discard block |
||
171 | 181 | int $level = 0, |
172 | 182 | bool $hideHeader = false |
173 | 183 | ): string { |
174 | - if (!$hideHeader && !empty($name)) { |
|
184 | + if (!$hideHeader && !empty($name)) |
|
185 | + { |
|
175 | 186 | $header = $r->indent($level) . $r->apply($name, 'name') . $r->apply(' = ', 'syntax', '='); |
176 | - } else { |
|
187 | + } |
|
188 | + else |
|
189 | + { |
|
177 | 190 | $header = $r->indent($level); |
178 | 191 | } |
179 | 192 | |
180 | - if ($level > $this->maxLevel) { |
|
193 | + if ($level > $this->maxLevel) |
|
194 | + { |
|
181 | 195 | //Renderer is not reference based, we can't dump too deep values |
182 | 196 | return $r->indent($level) . $r->apply('-too deep-', 'maxLevel') . "\n"; |
183 | 197 | } |
184 | 198 | |
185 | 199 | $type = strtolower(gettype($value)); |
186 | 200 | |
187 | - if ($type === 'array') { |
|
201 | + if ($type === 'array') |
|
202 | + { |
|
188 | 203 | return $header . $this->renderArray($r, $value, $level, $hideHeader); |
189 | 204 | } |
190 | 205 | |
191 | - if ($type === 'object') { |
|
206 | + if ($type === 'object') |
|
207 | + { |
|
192 | 208 | return $header . $this->renderObject($r, $value, $level, $hideHeader); |
193 | 209 | } |
194 | 210 | |
195 | - if ($type === 'resource') { |
|
211 | + if ($type === 'resource') |
|
212 | + { |
|
196 | 213 | //No need to dump resource value |
197 | 214 | $element = get_resource_type($value) . ' resource '; |
198 | 215 | |
@@ -206,7 +223,8 @@ discard block |
||
206 | 223 | $header .= $r->apply("{$type}({$length})", 'type', $type); |
207 | 224 | |
208 | 225 | $element = null; |
209 | - switch ($type) { |
|
226 | + switch ($type) |
|
227 | + { |
|
210 | 228 | case 'string': |
211 | 229 | $element = $r->escapeStrings() ? htmlspecialchars($value) : $value; |
212 | 230 | break; |
@@ -216,7 +234,8 @@ discard block |
||
216 | 234 | break; |
217 | 235 | |
218 | 236 | default: |
219 | - if ($value !== null) { |
|
237 | + if ($value !== null) |
|
238 | + { |
|
220 | 239 | //Not showing null value, type is enough |
221 | 240 | $element = var_export($value, true); |
222 | 241 | } |
@@ -228,19 +247,25 @@ discard block |
||
228 | 247 | |
229 | 248 | private function renderArray(RendererInterface $r, array $array, int $level, bool $hideHeader = false): string |
230 | 249 | { |
231 | - if (!$hideHeader) { |
|
250 | + if (!$hideHeader) |
|
251 | + { |
|
232 | 252 | $count = count($array); |
233 | 253 | |
234 | 254 | //Array size and scope |
235 | 255 | $output = $r->apply("array({$count})", 'type', 'array') . "\n"; |
236 | 256 | $output .= $r->indent($level) . $r->apply('[', 'syntax', '[') . "\n"; |
237 | - } else { |
|
257 | + } |
|
258 | + else |
|
259 | + { |
|
238 | 260 | $output = ''; |
239 | 261 | } |
240 | 262 | |
241 | - foreach ($array as $key => $value) { |
|
242 | - if (!is_numeric($key)) { |
|
243 | - if (is_string($key) && $r->escapeStrings()) { |
|
263 | + foreach ($array as $key => $value) |
|
264 | + { |
|
265 | + if (!is_numeric($key)) |
|
266 | + { |
|
267 | + if (is_string($key) && $r->escapeStrings()) |
|
268 | + { |
|
244 | 269 | $key = htmlspecialchars($key); |
245 | 270 | } |
246 | 271 | |
@@ -250,7 +275,8 @@ discard block |
||
250 | 275 | $output .= $this->renderValue($r, $value, "[{$key}]", $level + 1); |
251 | 276 | } |
252 | 277 | |
253 | - if (!$hideHeader) { |
|
278 | + if (!$hideHeader) |
|
279 | + { |
|
254 | 280 | //Closing array scope |
255 | 281 | $output .= $r->indent($level) . $r->apply(']', 'syntax', ']') . "\n"; |
256 | 282 | } |
@@ -269,29 +295,38 @@ discard block |
||
269 | 295 | bool $hideHeader = false, |
270 | 296 | string $class = '' |
271 | 297 | ): string { |
272 | - if (!$hideHeader) { |
|
298 | + if (!$hideHeader) |
|
299 | + { |
|
273 | 300 | $type = ($class ?: get_class($value)) . ' object '; |
274 | 301 | |
275 | 302 | $header = $r->apply($type, 'type', 'object') . "\n"; |
276 | 303 | $header .= $r->indent($level) . $r->apply('(', 'syntax', '(') . "\n"; |
277 | - } else { |
|
304 | + } |
|
305 | + else |
|
306 | + { |
|
278 | 307 | $header = ''; |
279 | 308 | } |
280 | 309 | |
281 | 310 | //Let's use method specifically created for dumping |
282 | - if (method_exists($value, '__debugInfo') || $value instanceof Closure) { |
|
283 | - if ($value instanceof Closure) { |
|
311 | + if (method_exists($value, '__debugInfo') || $value instanceof Closure) |
|
312 | + { |
|
313 | + if ($value instanceof Closure) |
|
314 | + { |
|
284 | 315 | $debugInfo = $this->describeClosure($value); |
285 | - } else { |
|
316 | + } |
|
317 | + else |
|
318 | + { |
|
286 | 319 | $debugInfo = $value->__debugInfo(); |
287 | 320 | } |
288 | 321 | |
289 | - if (is_array($debugInfo)) { |
|
322 | + if (is_array($debugInfo)) |
|
323 | + { |
|
290 | 324 | //Pretty view |
291 | 325 | $debugInfo = (object)$debugInfo; |
292 | 326 | } |
293 | 327 | |
294 | - if (is_object($debugInfo)) { |
|
328 | + if (is_object($debugInfo)) |
|
329 | + { |
|
295 | 330 | //We are not including syntax elements here |
296 | 331 | return $this->renderObject($r, $debugInfo, $level, false, get_class($value)); |
297 | 332 | } |
@@ -304,7 +339,8 @@ discard block |
||
304 | 339 | $refection = new ReflectionObject($value); |
305 | 340 | |
306 | 341 | $output = ''; |
307 | - foreach ($refection->getProperties() as $property) { |
|
342 | + foreach ($refection->getProperties() as $property) |
|
343 | + { |
|
308 | 344 | $output .= $this->renderProperty($r, $value, $property, $level); |
309 | 345 | } |
310 | 346 | |
@@ -318,7 +354,8 @@ discard block |
||
318 | 354 | */ |
319 | 355 | private function renderProperty(RendererInterface $r, $value, ReflectionProperty $p, int $level): string |
320 | 356 | { |
321 | - if ($p->isStatic()) { |
|
357 | + if ($p->isStatic()) |
|
358 | + { |
|
322 | 359 | return ''; |
323 | 360 | } |
324 | 361 | |
@@ -338,9 +375,12 @@ discard block |
||
338 | 375 | //To read private and protected properties |
339 | 376 | $p->setAccessible(true); |
340 | 377 | |
341 | - if ($value instanceof stdClass) { |
|
378 | + if ($value instanceof stdClass) |
|
379 | + { |
|
342 | 380 | $name = $r->apply($p->getName(), 'dynamic'); |
343 | - } else { |
|
381 | + } |
|
382 | + else |
|
383 | + { |
|
344 | 384 | //Property name includes access level |
345 | 385 | $name = $p->getName() . $r->apply(':' . $access, 'access', $access); |
346 | 386 | } |
@@ -353,9 +393,12 @@ discard block |
||
353 | 393 | */ |
354 | 394 | private function describeClosure(Closure $closure): array |
355 | 395 | { |
356 | - try { |
|
396 | + try |
|
397 | + { |
|
357 | 398 | $r = new ReflectionFunction($closure); |
358 | - } catch (ReflectionException $e) { |
|
399 | + } |
|
400 | + catch (ReflectionException $e) |
|
401 | + { |
|
359 | 402 | return ['closure' => 'unable to resolve']; |
360 | 403 | } |
361 | 404 | |
@@ -373,9 +416,12 @@ discard block |
||
373 | 416 | */ |
374 | 417 | private function getAccess(ReflectionProperty $p): string |
375 | 418 | { |
376 | - if ($p->isPrivate()) { |
|
419 | + if ($p->isPrivate()) |
|
420 | + { |
|
377 | 421 | return 'private'; |
378 | - } elseif ($p->isProtected()) { |
|
422 | + } |
|
423 | + elseif ($p->isProtected()) |
|
424 | + { |
|
379 | 425 | return 'protected'; |
380 | 426 | } |
381 | 427 |
@@ -12,7 +12,7 @@ discard block |
||
12 | 12 | use Spiral\Core\ContainerScope; |
13 | 13 | use Spiral\Debug\Dumper; |
14 | 14 | |
15 | -if (!function_exists('dump')) { |
|
15 | +if (!function_exists('dump')){ |
|
16 | 16 | /** |
17 | 17 | * Dump value. |
18 | 18 | * |
@@ -23,12 +23,12 @@ discard block |
||
23 | 23 | */ |
24 | 24 | function dump($value, int $output = Dumper::OUTPUT): ?string |
25 | 25 | { |
26 | - if (!class_exists(ContainerScope::class)) { |
|
26 | + if (!class_exists(ContainerScope::class)){ |
|
27 | 27 | return (new Dumper())->dump($value, $output); |
28 | 28 | } |
29 | 29 | |
30 | 30 | $container = ContainerScope::getContainer(); |
31 | - if (is_null($container) || !$container->has(Dumper::class)) { |
|
31 | + if (is_null($container) || !$container->has(Dumper::class)){ |
|
32 | 32 | $dumper = new Dumper(); |
33 | 33 | |
34 | 34 | return $dumper->dump($value, $output); |
@@ -12,7 +12,8 @@ discard block |
||
12 | 12 | use Spiral\Core\ContainerScope; |
13 | 13 | use Spiral\Debug\Dumper; |
14 | 14 | |
15 | -if (!function_exists('dump')) { |
|
15 | +if (!function_exists('dump')) |
|
16 | +{ |
|
16 | 17 | /** |
17 | 18 | * Dump value. |
18 | 19 | * |
@@ -23,12 +24,14 @@ discard block |
||
23 | 24 | */ |
24 | 25 | function dump($value, int $output = Dumper::OUTPUT): ?string |
25 | 26 | { |
26 | - if (!class_exists(ContainerScope::class)) { |
|
27 | + if (!class_exists(ContainerScope::class)) |
|
28 | + { |
|
27 | 29 | return (new Dumper())->dump($value, $output); |
28 | 30 | } |
29 | 31 | |
30 | 32 | $container = ContainerScope::getContainer(); |
31 | - if (is_null($container) || !$container->has(Dumper::class)) { |
|
33 | + if (is_null($container) || !$container->has(Dumper::class)) |
|
34 | + { |
|
32 | 35 | $dumper = new Dumper(); |
33 | 36 | |
34 | 37 | return $dumper->dump($value, $output); |
@@ -21,7 +21,7 @@ discard block |
||
21 | 21 | /** |
22 | 22 | * Default coloring schema. |
23 | 23 | */ |
24 | - public const DEFAULT = [ |
|
24 | + public const default = [ |
|
25 | 25 | 'body' => '<pre style="background-color: white; font-family: monospace;">%s</pre>', |
26 | 26 | 'element' => '<span style="%s;">%s</span>', |
27 | 27 | 'indent' => '· ', |
@@ -99,9 +99,9 @@ discard block |
||
99 | 99 | /** |
100 | 100 | * Set of styles associated with different dumping properties. |
101 | 101 | */ |
102 | - protected array $style = self::DEFAULT; |
|
102 | + protected array $style = self::default; |
|
103 | 103 | |
104 | - public function __construct(array $style = self::DEFAULT) |
|
104 | + public function __construct(array $style = self::default) |
|
105 | 105 | { |
106 | 106 | $this->style = $style; |
107 | 107 | } |
@@ -99,14 +99,14 @@ discard block |
||
99 | 99 | */ |
100 | 100 | public function compileTemplate(Template $tpl): Result |
101 | 101 | { |
102 | - try { |
|
103 | - if (isset($this->visitors[self::STAGE_COMPILE])) { |
|
102 | + try{ |
|
103 | + if (isset($this->visitors[self::STAGE_COMPILE])){ |
|
104 | 104 | $traverser = new Traverser($this->visitors[self::STAGE_COMPILE]); |
105 | 105 | $tpl = $traverser->traverse([$tpl])[0]; |
106 | 106 | } |
107 | 107 | |
108 | 108 | return $this->compiler->compile($tpl); |
109 | - } catch (CompilerException $e) { |
|
109 | + }catch (CompilerException $e){ |
|
110 | 110 | throw $this->mapException($e); |
111 | 111 | } |
112 | 112 | } |
@@ -120,21 +120,21 @@ discard block |
||
120 | 120 | $source = $this->loader->load($path); |
121 | 121 | $stream = new StringStream($source->getContent()); |
122 | 122 | |
123 | - try { |
|
123 | + try{ |
|
124 | 124 | $tpl = $this->parser->withPath($path)->parse($stream); |
125 | 125 | $tpl->setContext(new Context( |
126 | 126 | new Token(Token::TYPE_RAW, 0, ''), |
127 | 127 | $path |
128 | 128 | )); |
129 | - } catch (ParserException $e) { |
|
129 | + }catch (ParserException $e){ |
|
130 | 130 | throw $this->mapException($e); |
131 | 131 | } |
132 | 132 | |
133 | - try { |
|
133 | + try{ |
|
134 | 134 | return $this->process($tpl); |
135 | - } catch (ContextExceptionInterface $e) { |
|
135 | + }catch (ContextExceptionInterface $e){ |
|
136 | 136 | throw $this->mapException($e); |
137 | - } catch (Throwable $e) { |
|
137 | + }catch (Throwable $e){ |
|
138 | 138 | throw $e; |
139 | 139 | } |
140 | 140 | } |
@@ -145,17 +145,17 @@ discard block |
||
145 | 145 | */ |
146 | 146 | private function process(Template $template): Template |
147 | 147 | { |
148 | - if (isset($this->visitors[self::STAGE_PREPARE])) { |
|
148 | + if (isset($this->visitors[self::STAGE_PREPARE])){ |
|
149 | 149 | $traverser = new Traverser($this->visitors[self::STAGE_PREPARE]); |
150 | 150 | $template = $traverser->traverse([$template])[0]; |
151 | 151 | } |
152 | 152 | |
153 | - if (isset($this->visitors[self::STAGE_TRANSFORM])) { |
|
153 | + if (isset($this->visitors[self::STAGE_TRANSFORM])){ |
|
154 | 154 | $traverser = new Traverser($this->visitors[self::STAGE_TRANSFORM]); |
155 | 155 | $template = $traverser->traverse([$template])[0]; |
156 | 156 | } |
157 | 157 | |
158 | - if (isset($this->visitors[self::STAGE_FINALIZE])) { |
|
158 | + if (isset($this->visitors[self::STAGE_FINALIZE])){ |
|
159 | 159 | $traverser = new Traverser($this->visitors[self::STAGE_FINALIZE]); |
160 | 160 | $template = $traverser->traverse([$template])[0]; |
161 | 161 | } |
@@ -168,17 +168,17 @@ discard block |
||
168 | 168 | */ |
169 | 169 | private function mapException(ContextExceptionInterface $e): ContextExceptionInterface |
170 | 170 | { |
171 | - if ($e->getContext()->getPath() === null) { |
|
171 | + if ($e->getContext()->getPath() === null){ |
|
172 | 172 | return $e; |
173 | 173 | } |
174 | 174 | |
175 | - try { |
|
175 | + try{ |
|
176 | 176 | $source = $this->loader->load($e->getContext()->getPath()); |
177 | - } catch (LoaderException $te) { |
|
177 | + }catch (LoaderException $te){ |
|
178 | 178 | return $e; |
179 | 179 | } |
180 | 180 | |
181 | - if ($source->getFilename() === null) { |
|
181 | + if ($source->getFilename() === null){ |
|
182 | 182 | return $e; |
183 | 183 | } |
184 | 184 |
@@ -99,14 +99,18 @@ discard block |
||
99 | 99 | */ |
100 | 100 | public function compileTemplate(Template $tpl): Result |
101 | 101 | { |
102 | - try { |
|
103 | - if (isset($this->visitors[self::STAGE_COMPILE])) { |
|
102 | + try |
|
103 | + { |
|
104 | + if (isset($this->visitors[self::STAGE_COMPILE])) |
|
105 | + { |
|
104 | 106 | $traverser = new Traverser($this->visitors[self::STAGE_COMPILE]); |
105 | 107 | $tpl = $traverser->traverse([$tpl])[0]; |
106 | 108 | } |
107 | 109 | |
108 | 110 | return $this->compiler->compile($tpl); |
109 | - } catch (CompilerException $e) { |
|
111 | + } |
|
112 | + catch (CompilerException $e) |
|
113 | + { |
|
110 | 114 | throw $this->mapException($e); |
111 | 115 | } |
112 | 116 | } |
@@ -120,21 +124,29 @@ discard block |
||
120 | 124 | $source = $this->loader->load($path); |
121 | 125 | $stream = new StringStream($source->getContent()); |
122 | 126 | |
123 | - try { |
|
127 | + try |
|
128 | + { |
|
124 | 129 | $tpl = $this->parser->withPath($path)->parse($stream); |
125 | 130 | $tpl->setContext(new Context( |
126 | 131 | new Token(Token::TYPE_RAW, 0, ''), |
127 | 132 | $path |
128 | 133 | )); |
129 | - } catch (ParserException $e) { |
|
134 | + } |
|
135 | + catch (ParserException $e) |
|
136 | + { |
|
130 | 137 | throw $this->mapException($e); |
131 | 138 | } |
132 | 139 | |
133 | - try { |
|
140 | + try |
|
141 | + { |
|
134 | 142 | return $this->process($tpl); |
135 | - } catch (ContextExceptionInterface $e) { |
|
143 | + } |
|
144 | + catch (ContextExceptionInterface $e) |
|
145 | + { |
|
136 | 146 | throw $this->mapException($e); |
137 | - } catch (Throwable $e) { |
|
147 | + } |
|
148 | + catch (Throwable $e) |
|
149 | + { |
|
138 | 150 | throw $e; |
139 | 151 | } |
140 | 152 | } |
@@ -145,17 +157,20 @@ discard block |
||
145 | 157 | */ |
146 | 158 | private function process(Template $template): Template |
147 | 159 | { |
148 | - if (isset($this->visitors[self::STAGE_PREPARE])) { |
|
160 | + if (isset($this->visitors[self::STAGE_PREPARE])) |
|
161 | + { |
|
149 | 162 | $traverser = new Traverser($this->visitors[self::STAGE_PREPARE]); |
150 | 163 | $template = $traverser->traverse([$template])[0]; |
151 | 164 | } |
152 | 165 | |
153 | - if (isset($this->visitors[self::STAGE_TRANSFORM])) { |
|
166 | + if (isset($this->visitors[self::STAGE_TRANSFORM])) |
|
167 | + { |
|
154 | 168 | $traverser = new Traverser($this->visitors[self::STAGE_TRANSFORM]); |
155 | 169 | $template = $traverser->traverse([$template])[0]; |
156 | 170 | } |
157 | 171 | |
158 | - if (isset($this->visitors[self::STAGE_FINALIZE])) { |
|
172 | + if (isset($this->visitors[self::STAGE_FINALIZE])) |
|
173 | + { |
|
159 | 174 | $traverser = new Traverser($this->visitors[self::STAGE_FINALIZE]); |
160 | 175 | $template = $traverser->traverse([$template])[0]; |
161 | 176 | } |
@@ -168,17 +183,22 @@ discard block |
||
168 | 183 | */ |
169 | 184 | private function mapException(ContextExceptionInterface $e): ContextExceptionInterface |
170 | 185 | { |
171 | - if ($e->getContext()->getPath() === null) { |
|
186 | + if ($e->getContext()->getPath() === null) |
|
187 | + { |
|
172 | 188 | return $e; |
173 | 189 | } |
174 | 190 | |
175 | - try { |
|
191 | + try |
|
192 | + { |
|
176 | 193 | $source = $this->loader->load($e->getContext()->getPath()); |
177 | - } catch (LoaderException $te) { |
|
194 | + } |
|
195 | + catch (LoaderException $te) |
|
196 | + { |
|
178 | 197 | return $e; |
179 | 198 | } |
180 | 199 | |
181 | - if ($source->getFilename() === null) { |
|
200 | + if ($source->getFilename() === null) |
|
201 | + { |
|
182 | 202 | return $e; |
183 | 203 | } |
184 | 204 |
@@ -68,7 +68,7 @@ discard block |
||
68 | 68 | */ |
69 | 69 | public function handle(Parser $parser, Assembler $asm, Token $token): void |
70 | 70 | { |
71 | - switch ($token->type) { |
|
71 | + switch ($token->type){ |
|
72 | 72 | case HTMLGrammar::TYPE_OPEN: |
73 | 73 | case HTMLGrammar::TYPE_OPEN_SHORT: |
74 | 74 | $this->node = new Tag(new Context($token, $parser->getPath())); |
@@ -77,12 +77,12 @@ discard block |
||
77 | 77 | break; |
78 | 78 | |
79 | 79 | case HTMLGrammar::TYPE_KEYWORD: |
80 | - if ($this->node->name === null) { |
|
80 | + if ($this->node->name === null){ |
|
81 | 81 | $this->node->name = $this->parseToken($parser, $token); |
82 | 82 | return; |
83 | 83 | } |
84 | 84 | |
85 | - if ($this->attr !== null && !$this->attr->value instanceof Nil) { |
|
85 | + if ($this->attr !== null && !$this->attr->value instanceof Nil){ |
|
86 | 86 | $this->attr->value = $this->parseToken($parser, $token); |
87 | 87 | $this->attr = null; |
88 | 88 | break; |
@@ -98,7 +98,7 @@ discard block |
||
98 | 98 | break; |
99 | 99 | |
100 | 100 | case HTMLGrammar::TYPE_EQUAL: |
101 | - if ($this->attr === null) { |
|
101 | + if ($this->attr === null){ |
|
102 | 102 | throw new SyntaxException('unexpected attribute token', $token); |
103 | 103 | } |
104 | 104 | |
@@ -107,7 +107,7 @@ discard block |
||
107 | 107 | break; |
108 | 108 | |
109 | 109 | case HTMLGrammar::TYPE_ATTRIBUTE: |
110 | - if ($this->attr === null) { |
|
110 | + if ($this->attr === null){ |
|
111 | 111 | throw new SyntaxException('unexpected attribute token', $token); |
112 | 112 | } |
113 | 113 | |
@@ -117,9 +117,9 @@ discard block |
||
117 | 117 | strpos($this->attr->name, 'on') === 0 |
118 | 118 | || in_array($this->attr->name, self::VERBATIM_ATTRIBUTES, true) |
119 | 119 | ) |
120 | - ) { |
|
120 | + ){ |
|
121 | 121 | $this->attr->value = $this->parseVerbatim($parser, $token); |
122 | - } else { |
|
122 | + }else{ |
|
123 | 123 | $this->attr->value = $this->parseToken($parser, $token); |
124 | 124 | } |
125 | 125 | |
@@ -133,8 +133,8 @@ discard block |
||
133 | 133 | break; |
134 | 134 | |
135 | 135 | case HTMLGrammar::TYPE_CLOSE: |
136 | - if ($this->token->type == HTMLGrammar::TYPE_OPEN_SHORT) { |
|
137 | - if (!$asm->getNode() instanceof Tag || $asm->getNode()->name !== $this->node->name) { |
|
136 | + if ($this->token->type == HTMLGrammar::TYPE_OPEN_SHORT){ |
|
137 | + if (!$asm->getNode() instanceof Tag || $asm->getNode()->name !== $this->node->name){ |
|
138 | 138 | throw new SyntaxException( |
139 | 139 | "Invalid closing tag `{$this->node->name}`, expected `{$asm->getNode()->name}`", |
140 | 140 | $this->token |
@@ -142,11 +142,11 @@ discard block |
||
142 | 142 | } |
143 | 143 | |
144 | 144 | $asm->close(); |
145 | - } else { |
|
146 | - if (in_array($this->node->name, self::VOID_TAGS)) { |
|
145 | + }else{ |
|
146 | + if (in_array($this->node->name, self::VOID_TAGS)){ |
|
147 | 147 | $this->node->void = true; |
148 | 148 | $asm->push($this->node); |
149 | - } else { |
|
149 | + }else{ |
|
150 | 150 | $asm->open($this->node, 'nodes'); |
151 | 151 | } |
152 | 152 | } |
@@ -159,9 +159,9 @@ discard block |
||
159 | 159 | break; |
160 | 160 | |
161 | 161 | default: |
162 | - if ($asm->getNode() instanceof Mixin || $asm->getNode() instanceof Verbatim) { |
|
162 | + if ($asm->getNode() instanceof Mixin || $asm->getNode() instanceof Verbatim){ |
|
163 | 163 | $node = $this->parseToken($parser, $token); |
164 | - if (is_string($node)) { |
|
164 | + if (is_string($node)){ |
|
165 | 165 | $node = new Raw($node, new Context($token, $parser->getPath())); |
166 | 166 | } |
167 | 167 | |
@@ -184,11 +184,11 @@ discard block |
||
184 | 184 | { |
185 | 185 | $verbatim = new Verbatim(new Context($token, $parser->getPath())); |
186 | 186 | |
187 | - if ($token->tokens === []) { |
|
188 | - if ($token->content) { |
|
187 | + if ($token->tokens === []){ |
|
188 | + if ($token->content){ |
|
189 | 189 | $verbatim->nodes[] = $token->content; |
190 | 190 | } |
191 | - } else { |
|
191 | + }else{ |
|
192 | 192 | $parser->parseTokens( |
193 | 193 | new Assembler($verbatim, 'nodes'), |
194 | 194 | $token->tokens |
@@ -68,7 +68,8 @@ discard block |
||
68 | 68 | */ |
69 | 69 | public function handle(Parser $parser, Assembler $asm, Token $token): void |
70 | 70 | { |
71 | - switch ($token->type) { |
|
71 | + switch ($token->type) |
|
72 | + { |
|
72 | 73 | case HTMLGrammar::TYPE_OPEN: |
73 | 74 | case HTMLGrammar::TYPE_OPEN_SHORT: |
74 | 75 | $this->node = new Tag(new Context($token, $parser->getPath())); |
@@ -77,12 +78,14 @@ discard block |
||
77 | 78 | break; |
78 | 79 | |
79 | 80 | case HTMLGrammar::TYPE_KEYWORD: |
80 | - if ($this->node->name === null) { |
|
81 | + if ($this->node->name === null) |
|
82 | + { |
|
81 | 83 | $this->node->name = $this->parseToken($parser, $token); |
82 | 84 | return; |
83 | 85 | } |
84 | 86 | |
85 | - if ($this->attr !== null && !$this->attr->value instanceof Nil) { |
|
87 | + if ($this->attr !== null && !$this->attr->value instanceof Nil) |
|
88 | + { |
|
86 | 89 | $this->attr->value = $this->parseToken($parser, $token); |
87 | 90 | $this->attr = null; |
88 | 91 | break; |
@@ -98,7 +101,8 @@ discard block |
||
98 | 101 | break; |
99 | 102 | |
100 | 103 | case HTMLGrammar::TYPE_EQUAL: |
101 | - if ($this->attr === null) { |
|
104 | + if ($this->attr === null) |
|
105 | + { |
|
102 | 106 | throw new SyntaxException('unexpected attribute token', $token); |
103 | 107 | } |
104 | 108 | |
@@ -107,7 +111,8 @@ discard block |
||
107 | 111 | break; |
108 | 112 | |
109 | 113 | case HTMLGrammar::TYPE_ATTRIBUTE: |
110 | - if ($this->attr === null) { |
|
114 | + if ($this->attr === null) |
|
115 | + { |
|
111 | 116 | throw new SyntaxException('unexpected attribute token', $token); |
112 | 117 | } |
113 | 118 | |
@@ -119,7 +124,9 @@ discard block |
||
119 | 124 | ) |
120 | 125 | ) { |
121 | 126 | $this->attr->value = $this->parseVerbatim($parser, $token); |
122 | - } else { |
|
127 | + } |
|
128 | + else |
|
129 | + { |
|
123 | 130 | $this->attr->value = $this->parseToken($parser, $token); |
124 | 131 | } |
125 | 132 | |
@@ -133,8 +140,10 @@ discard block |
||
133 | 140 | break; |
134 | 141 | |
135 | 142 | case HTMLGrammar::TYPE_CLOSE: |
136 | - if ($this->token->type == HTMLGrammar::TYPE_OPEN_SHORT) { |
|
137 | - if (!$asm->getNode() instanceof Tag || $asm->getNode()->name !== $this->node->name) { |
|
143 | + if ($this->token->type == HTMLGrammar::TYPE_OPEN_SHORT) |
|
144 | + { |
|
145 | + if (!$asm->getNode() instanceof Tag || $asm->getNode()->name !== $this->node->name) |
|
146 | + { |
|
138 | 147 | throw new SyntaxException( |
139 | 148 | "Invalid closing tag `{$this->node->name}`, expected `{$asm->getNode()->name}`", |
140 | 149 | $this->token |
@@ -142,11 +151,16 @@ discard block |
||
142 | 151 | } |
143 | 152 | |
144 | 153 | $asm->close(); |
145 | - } else { |
|
146 | - if (in_array($this->node->name, self::VOID_TAGS)) { |
|
154 | + } |
|
155 | + else |
|
156 | + { |
|
157 | + if (in_array($this->node->name, self::VOID_TAGS)) |
|
158 | + { |
|
147 | 159 | $this->node->void = true; |
148 | 160 | $asm->push($this->node); |
149 | - } else { |
|
161 | + } |
|
162 | + else |
|
163 | + { |
|
150 | 164 | $asm->open($this->node, 'nodes'); |
151 | 165 | } |
152 | 166 | } |
@@ -159,9 +173,11 @@ discard block |
||
159 | 173 | break; |
160 | 174 | |
161 | 175 | default: |
162 | - if ($asm->getNode() instanceof Mixin || $asm->getNode() instanceof Verbatim) { |
|
176 | + if ($asm->getNode() instanceof Mixin || $asm->getNode() instanceof Verbatim) |
|
177 | + { |
|
163 | 178 | $node = $this->parseToken($parser, $token); |
164 | - if (is_string($node)) { |
|
179 | + if (is_string($node)) |
|
180 | + { |
|
165 | 181 | $node = new Raw($node, new Context($token, $parser->getPath())); |
166 | 182 | } |
167 | 183 | |
@@ -184,11 +200,15 @@ discard block |
||
184 | 200 | { |
185 | 201 | $verbatim = new Verbatim(new Context($token, $parser->getPath())); |
186 | 202 | |
187 | - if ($token->tokens === []) { |
|
188 | - if ($token->content) { |
|
203 | + if ($token->tokens === []) |
|
204 | + { |
|
205 | + if ($token->content) |
|
206 | + { |
|
189 | 207 | $verbatim->nodes[] = $token->content; |
190 | 208 | } |
191 | - } else { |
|
209 | + } |
|
210 | + else |
|
211 | + { |
|
192 | 212 | $parser->parseTokens( |
193 | 213 | new Assembler($verbatim, 'nodes'), |
194 | 214 | $token->tokens |