@@ -14,9 +14,9 @@ |
||
14 | 14 | * @see http://www.xmlsoft.org/html/libxml-xmlerror.html |
15 | 15 | */ |
16 | 16 | |
17 | - /** |
|
18 | - * @var string $list |
|
19 | - */ |
|
17 | + /** |
|
18 | + * @var string $list |
|
19 | + */ |
|
20 | 20 | $list = file_get_contents('libxmlerrors.txt'); |
21 | 21 | $outputFile = 'LibXML.php'; |
22 | 22 | $lines = explode("\n", $list); |
@@ -39,9 +39,9 @@ discard block |
||
39 | 39 | */ |
40 | 40 | protected static $instance; |
41 | 41 | |
42 | - /** |
|
43 | - * @var string |
|
44 | - */ |
|
42 | + /** |
|
43 | + * @var string |
|
44 | + */ |
|
45 | 45 | protected $baseURL = ''; |
46 | 46 | |
47 | 47 | public function __construct() |
@@ -51,10 +51,10 @@ discard block |
||
51 | 51 | $this->init(); |
52 | 52 | } |
53 | 53 | |
54 | - /** |
|
55 | - * Can be extended in a subclass, to avoid |
|
56 | - * redefining the constructor. |
|
57 | - */ |
|
54 | + /** |
|
55 | + * Can be extended in a subclass, to avoid |
|
56 | + * redefining the constructor. |
|
57 | + */ |
|
58 | 58 | protected function init() |
59 | 59 | { |
60 | 60 | |
@@ -126,30 +126,30 @@ discard block |
||
126 | 126 | return $this->buildURL($params, $dispatcher); |
127 | 127 | } |
128 | 128 | |
129 | - /** |
|
130 | - * Retrieves the name of the current dispatcher script / page. |
|
131 | - * This is made to be extended and implemented in a subclass. |
|
132 | - * |
|
133 | - * @return string |
|
134 | - */ |
|
129 | + /** |
|
130 | + * Retrieves the name of the current dispatcher script / page. |
|
131 | + * This is made to be extended and implemented in a subclass. |
|
132 | + * |
|
133 | + * @return string |
|
134 | + */ |
|
135 | 135 | public function getDispatcher() : string |
136 | 136 | { |
137 | 137 | return ''; |
138 | 138 | } |
139 | 139 | |
140 | - /** |
|
141 | - * Filters and retrieves the current request variables |
|
142 | - * to be used to build an URL to refresh the current page. |
|
143 | - * |
|
144 | - * For further customization options, use the |
|
145 | - * {@see Request::createRefreshParams()} method. |
|
146 | - * |
|
147 | - * @param array<string,mixed> $params Key => value pairs of parameters to always include in the result. |
|
148 | - * @param string[] $exclude Names of parameters to exclude from the result. |
|
149 | - * @return array<string,mixed> |
|
150 | - * |
|
151 | - * @see Request::createRefreshParams() |
|
152 | - */ |
|
140 | + /** |
|
141 | + * Filters and retrieves the current request variables |
|
142 | + * to be used to build an URL to refresh the current page. |
|
143 | + * |
|
144 | + * For further customization options, use the |
|
145 | + * {@see Request::createRefreshParams()} method. |
|
146 | + * |
|
147 | + * @param array<string,mixed> $params Key => value pairs of parameters to always include in the result. |
|
148 | + * @param string[] $exclude Names of parameters to exclude from the result. |
|
149 | + * @return array<string,mixed> |
|
150 | + * |
|
151 | + * @see Request::createRefreshParams() |
|
152 | + */ |
|
153 | 153 | public function getRefreshParams(array $params = array(), array $exclude = array()) |
154 | 154 | { |
155 | 155 | return $this->createRefreshParams() |
@@ -158,13 +158,13 @@ discard block |
||
158 | 158 | ->getParams(); |
159 | 159 | } |
160 | 160 | |
161 | - /** |
|
162 | - * Creates an instance of the helper that can be used to |
|
163 | - * retrieve the request's parameters collection, with the |
|
164 | - * possiblity to exlude and override some by rules. |
|
165 | - * |
|
166 | - * @return Request_RefreshParams |
|
167 | - */ |
|
161 | + /** |
|
162 | + * Creates an instance of the helper that can be used to |
|
163 | + * retrieve the request's parameters collection, with the |
|
164 | + * possiblity to exlude and override some by rules. |
|
165 | + * |
|
166 | + * @return Request_RefreshParams |
|
167 | + */ |
|
168 | 168 | public function createRefreshParams() : Request_RefreshParams |
169 | 169 | { |
170 | 170 | return new Request_RefreshParams(); |
@@ -197,10 +197,10 @@ discard block |
||
197 | 197 | return $url; |
198 | 198 | } |
199 | 199 | |
200 | - /** |
|
201 | - * Retrieves the base URL of the application. |
|
202 | - * @return string |
|
203 | - */ |
|
200 | + /** |
|
201 | + * Retrieves the base URL of the application. |
|
202 | + * @return string |
|
203 | + */ |
|
204 | 204 | public function getBaseURL() : string |
205 | 205 | { |
206 | 206 | return $this->baseURL; |
@@ -230,13 +230,13 @@ discard block |
||
230 | 230 | return $this->knownParams[$name]; |
231 | 231 | } |
232 | 232 | |
233 | - /** |
|
234 | - * Retrieves a previously registered parameter instance. |
|
235 | - * |
|
236 | - * @param string $name |
|
237 | - * @throws Request_Exception |
|
238 | - * @return Request_Param |
|
239 | - */ |
|
233 | + /** |
|
234 | + * Retrieves a previously registered parameter instance. |
|
235 | + * |
|
236 | + * @param string $name |
|
237 | + * @throws Request_Exception |
|
238 | + * @return Request_Param |
|
239 | + */ |
|
240 | 240 | public function getRegisteredParam(string $name) : Request_Param |
241 | 241 | { |
242 | 242 | if(isset($this->knownParams[$name])) { |
@@ -253,48 +253,48 @@ discard block |
||
253 | 253 | ); |
254 | 254 | } |
255 | 255 | |
256 | - /** |
|
257 | - * Checks whether a parameter with the specified name |
|
258 | - * has been registered. |
|
259 | - * |
|
260 | - * @param string $name |
|
261 | - * @return bool |
|
262 | - */ |
|
256 | + /** |
|
257 | + * Checks whether a parameter with the specified name |
|
258 | + * has been registered. |
|
259 | + * |
|
260 | + * @param string $name |
|
261 | + * @return bool |
|
262 | + */ |
|
263 | 263 | public function hasRegisteredParam(string $name) : bool |
264 | 264 | { |
265 | 265 | return isset($this->knownParams[$name]); |
266 | 266 | } |
267 | 267 | |
268 | - /** |
|
269 | - * Retrieves an indexed array with accept mime types |
|
270 | - * that the client sent, in the order of preference |
|
271 | - * the client specified. |
|
272 | - * |
|
273 | - * Example: |
|
274 | - * |
|
275 | - * array( |
|
276 | - * 'text/html', |
|
277 | - * 'application/xhtml+xml', |
|
278 | - * 'image/webp' |
|
279 | - * ... |
|
280 | - * ) |
|
281 | - * |
|
282 | - * @return array |
|
283 | - * @see Request::parseAcceptHeaders() |
|
284 | - */ |
|
268 | + /** |
|
269 | + * Retrieves an indexed array with accept mime types |
|
270 | + * that the client sent, in the order of preference |
|
271 | + * the client specified. |
|
272 | + * |
|
273 | + * Example: |
|
274 | + * |
|
275 | + * array( |
|
276 | + * 'text/html', |
|
277 | + * 'application/xhtml+xml', |
|
278 | + * 'image/webp' |
|
279 | + * ... |
|
280 | + * ) |
|
281 | + * |
|
282 | + * @return array |
|
283 | + * @see Request::parseAcceptHeaders() |
|
284 | + */ |
|
285 | 285 | public static function getAcceptHeaders() : array |
286 | 286 | { |
287 | 287 | return self::parseAcceptHeaders()->getMimeStrings(); |
288 | 288 | } |
289 | 289 | |
290 | - /** |
|
291 | - * Returns an instance of the accept headers parser, |
|
292 | - * to access information on the browser's accepted |
|
293 | - * mime types. |
|
294 | - * |
|
295 | - * @return Request_AcceptHeaders |
|
296 | - * @see Request::getAcceptHeaders() |
|
297 | - */ |
|
290 | + /** |
|
291 | + * Returns an instance of the accept headers parser, |
|
292 | + * to access information on the browser's accepted |
|
293 | + * mime types. |
|
294 | + * |
|
295 | + * @return Request_AcceptHeaders |
|
296 | + * @see Request::getAcceptHeaders() |
|
297 | + */ |
|
298 | 298 | public static function parseAcceptHeaders() : Request_AcceptHeaders |
299 | 299 | { |
300 | 300 | static $accept; |
@@ -342,14 +342,14 @@ discard block |
||
342 | 342 | return false; |
343 | 343 | } |
344 | 344 | |
345 | - /** |
|
346 | - * Removes a single parameter from the request. |
|
347 | - * If the parameter has been registered, also |
|
348 | - * removes the registration info. |
|
349 | - * |
|
350 | - * @param string $name |
|
351 | - * @return Request |
|
352 | - */ |
|
345 | + /** |
|
346 | + * Removes a single parameter from the request. |
|
347 | + * If the parameter has been registered, also |
|
348 | + * removes the registration info. |
|
349 | + * |
|
350 | + * @param string $name |
|
351 | + * @return Request |
|
352 | + */ |
|
353 | 353 | public function removeParam(string $name) : Request |
354 | 354 | { |
355 | 355 | if(isset($_REQUEST[$name])) { |
@@ -363,12 +363,12 @@ discard block |
||
363 | 363 | return $this; |
364 | 364 | } |
365 | 365 | |
366 | - /** |
|
367 | - * Removes several parameters from the request. |
|
368 | - * |
|
369 | - * @param string[] $names |
|
370 | - * @return Request |
|
371 | - */ |
|
366 | + /** |
|
367 | + * Removes several parameters from the request. |
|
368 | + * |
|
369 | + * @param string[] $names |
|
370 | + * @return Request |
|
371 | + */ |
|
372 | 372 | public function removeParams(array $names) : Request |
373 | 373 | { |
374 | 374 | foreach($names as $name) { |
@@ -435,18 +435,18 @@ discard block |
||
435 | 435 | return $val; |
436 | 436 | } |
437 | 437 | |
438 | - /** |
|
439 | - * Treats the request parameter as a JSON string, and |
|
440 | - * if it exists and contains valid JSON, returns the |
|
441 | - * decoded JSON value as an array (default). |
|
442 | - * |
|
443 | - * @param string $name |
|
444 | - * @param bool $assoc |
|
445 | - * @return array|object |
|
446 | - * |
|
447 | - * @see Request::getJSONAssoc() |
|
448 | - * @see Request::getJSONObject() |
|
449 | - */ |
|
438 | + /** |
|
439 | + * Treats the request parameter as a JSON string, and |
|
440 | + * if it exists and contains valid JSON, returns the |
|
441 | + * decoded JSON value as an array (default). |
|
442 | + * |
|
443 | + * @param string $name |
|
444 | + * @param bool $assoc |
|
445 | + * @return array|object |
|
446 | + * |
|
447 | + * @see Request::getJSONAssoc() |
|
448 | + * @see Request::getJSONObject() |
|
449 | + */ |
|
450 | 450 | public function getJSON(string $name, bool $assoc=true) |
451 | 451 | { |
452 | 452 | $value = $this->getParam($name); |
@@ -471,13 +471,13 @@ discard block |
||
471 | 471 | return new \stdClass(); |
472 | 472 | } |
473 | 473 | |
474 | - /** |
|
475 | - * Like {@link Request::getJSON()}, but omitting the second |
|
476 | - * parameter. Use this for more readable code. |
|
477 | - * |
|
478 | - * @param string $name |
|
479 | - * @return array |
|
480 | - */ |
|
474 | + /** |
|
475 | + * Like {@link Request::getJSON()}, but omitting the second |
|
476 | + * parameter. Use this for more readable code. |
|
477 | + * |
|
478 | + * @param string $name |
|
479 | + * @return array |
|
480 | + */ |
|
481 | 481 | public function getJSONAssoc(string $name) : array |
482 | 482 | { |
483 | 483 | $result = $this->getJSON($name); |
@@ -488,13 +488,13 @@ discard block |
||
488 | 488 | return array(); |
489 | 489 | } |
490 | 490 | |
491 | - /** |
|
492 | - * Like {@link Request::getJSON()}, but omitting the second |
|
493 | - * parameter. Use this for more readable code. |
|
494 | - * |
|
495 | - * @param string $name |
|
496 | - * @return object |
|
497 | - */ |
|
491 | + /** |
|
492 | + * Like {@link Request::getJSON()}, but omitting the second |
|
493 | + * parameter. Use this for more readable code. |
|
494 | + * |
|
495 | + * @param string $name |
|
496 | + * @return object |
|
497 | + */ |
|
498 | 498 | public function getJSONObject(string $name) : object |
499 | 499 | { |
500 | 500 | $result = $this->getJSON($name, false); |
@@ -505,12 +505,12 @@ discard block |
||
505 | 505 | return new \stdClass(); |
506 | 506 | } |
507 | 507 | |
508 | - /** |
|
509 | - * Sends a JSON response with the correct headers. |
|
510 | - * |
|
511 | - * @param array|string $data |
|
512 | - * @param bool $exit Whether to exit the script afterwards. |
|
513 | - */ |
|
508 | + /** |
|
509 | + * Sends a JSON response with the correct headers. |
|
510 | + * |
|
511 | + * @param array|string $data |
|
512 | + * @param bool $exit Whether to exit the script afterwards. |
|
513 | + */ |
|
514 | 514 | public static function sendJSON($data, bool $exit=true) |
515 | 515 | { |
516 | 516 | $payload = $data; |
@@ -530,12 +530,12 @@ discard block |
||
530 | 530 | } |
531 | 531 | } |
532 | 532 | |
533 | - /** |
|
534 | - * Sends HTML to the browser with the correct headers. |
|
535 | - * |
|
536 | - * @param string $html |
|
537 | - * @param bool $exit Whether to exit the script afterwards. |
|
538 | - */ |
|
533 | + /** |
|
534 | + * Sends HTML to the browser with the correct headers. |
|
535 | + * |
|
536 | + * @param string $html |
|
537 | + * @param bool $exit Whether to exit the script afterwards. |
|
538 | + */ |
|
539 | 539 | public static function sendHTML(string $html, bool $exit=true) |
540 | 540 | { |
541 | 541 | header('Cache-Control: no-cache, must-revalidate'); |
@@ -550,16 +550,16 @@ discard block |
||
550 | 550 | } |
551 | 551 | } |
552 | 552 | |
553 | - /** |
|
554 | - * Creates a new instance of the URL comparer, which can check |
|
555 | - * whether the specified URLs match, regardless of the order in |
|
556 | - * which the query parameters are, if any. |
|
557 | - * |
|
558 | - * @param string $sourceURL |
|
559 | - * @param string $targetURL |
|
560 | - * @param array $limitParams Whether to limit the comparison to these specific parameter names (if present) |
|
561 | - * @return Request_URLComparer |
|
562 | - */ |
|
553 | + /** |
|
554 | + * Creates a new instance of the URL comparer, which can check |
|
555 | + * whether the specified URLs match, regardless of the order in |
|
556 | + * which the query parameters are, if any. |
|
557 | + * |
|
558 | + * @param string $sourceURL |
|
559 | + * @param string $targetURL |
|
560 | + * @param array $limitParams Whether to limit the comparison to these specific parameter names (if present) |
|
561 | + * @return Request_URLComparer |
|
562 | + */ |
|
563 | 563 | public function createURLComparer(string $sourceURL, string $targetURL, array $limitParams=array()) : Request_URLComparer |
564 | 564 | { |
565 | 565 | $comparer = new Request_URLComparer($this, $sourceURL, $targetURL); |
@@ -568,10 +568,10 @@ discard block |
||
568 | 568 | return $comparer; |
569 | 569 | } |
570 | 570 | |
571 | - /** |
|
572 | - * Retrieves the full URL that was used to access the current page. |
|
573 | - * @return string |
|
574 | - */ |
|
571 | + /** |
|
572 | + * Retrieves the full URL that was used to access the current page. |
|
573 | + * @return string |
|
574 | + */ |
|
575 | 575 | public function getCurrentURL() : string |
576 | 576 | { |
577 | 577 | return $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; |
@@ -19,9 +19,9 @@ |
||
19 | 19 | */ |
20 | 20 | class Request_RefreshParams_Exclude_Name extends Request_RefreshParams_Exclude |
21 | 21 | { |
22 | - /** |
|
23 | - * @var string |
|
24 | - */ |
|
22 | + /** |
|
23 | + * @var string |
|
24 | + */ |
|
25 | 25 | private $name; |
26 | 26 | |
27 | 27 | public function __construct(string $paramName) |
@@ -23,14 +23,14 @@ discard block |
||
23 | 23 | { |
24 | 24 | use Traits_Optionable; |
25 | 25 | |
26 | - /** |
|
27 | - * @var array<string,mixed> |
|
28 | - */ |
|
26 | + /** |
|
27 | + * @var array<string,mixed> |
|
28 | + */ |
|
29 | 29 | private $overrides = array(); |
30 | 30 | |
31 | - /** |
|
32 | - * @var Request_RefreshParams_Exclude[] |
|
33 | - */ |
|
31 | + /** |
|
32 | + * @var Request_RefreshParams_Exclude[] |
|
33 | + */ |
|
34 | 34 | private $excludes = array(); |
35 | 35 | |
36 | 36 | public function getDefaultOptions() : array |
@@ -41,27 +41,27 @@ discard block |
||
41 | 41 | ); |
42 | 42 | } |
43 | 43 | |
44 | - /** |
|
45 | - * Whether to automatically exclude the session variable |
|
46 | - * from the parameters. |
|
47 | - * |
|
48 | - * @param bool $exclude |
|
49 | - * @return Request_RefreshParams |
|
50 | - */ |
|
44 | + /** |
|
45 | + * Whether to automatically exclude the session variable |
|
46 | + * from the parameters. |
|
47 | + * |
|
48 | + * @param bool $exclude |
|
49 | + * @return Request_RefreshParams |
|
50 | + */ |
|
51 | 51 | public function setExcludeSessionName(bool $exclude=true) : Request_RefreshParams |
52 | 52 | { |
53 | 53 | $this->setOption('exclude-session-name', $exclude); |
54 | 54 | return $this; |
55 | 55 | } |
56 | 56 | |
57 | - /** |
|
58 | - * Whether to automatically exclude the HTML_QuickForm2 |
|
59 | - * request variable used to track whether a form has been |
|
60 | - * submitted. |
|
61 | - * |
|
62 | - * @param bool $exclude |
|
63 | - * @return Request_RefreshParams |
|
64 | - */ |
|
57 | + /** |
|
58 | + * Whether to automatically exclude the HTML_QuickForm2 |
|
59 | + * request variable used to track whether a form has been |
|
60 | + * submitted. |
|
61 | + * |
|
62 | + * @param bool $exclude |
|
63 | + * @return Request_RefreshParams |
|
64 | + */ |
|
65 | 65 | public function setExcludeQuickform(bool $exclude) : Request_RefreshParams |
66 | 66 | { |
67 | 67 | $this->setOption('exclude-quickform-submitter', $exclude); |
@@ -78,20 +78,20 @@ discard block |
||
78 | 78 | return $this; |
79 | 79 | } |
80 | 80 | |
81 | - /** |
|
82 | - * Exclude a request using a callback function. |
|
83 | - * |
|
84 | - * The function gets two parameters: |
|
85 | - * |
|
86 | - * - The name of the request parameter |
|
87 | - * - The value of the request parameter |
|
88 | - * |
|
89 | - * If the callback returns a boolean true, the |
|
90 | - * parameter will be excluded. |
|
91 | - * |
|
92 | - * @param callable $callback |
|
93 | - * @return Request_RefreshParams |
|
94 | - */ |
|
81 | + /** |
|
82 | + * Exclude a request using a callback function. |
|
83 | + * |
|
84 | + * The function gets two parameters: |
|
85 | + * |
|
86 | + * - The name of the request parameter |
|
87 | + * - The value of the request parameter |
|
88 | + * |
|
89 | + * If the callback returns a boolean true, the |
|
90 | + * parameter will be excluded. |
|
91 | + * |
|
92 | + * @param callable $callback |
|
93 | + * @return Request_RefreshParams |
|
94 | + */ |
|
95 | 95 | public function excludeParamByCallback($callback) : Request_RefreshParams |
96 | 96 | { |
97 | 97 | $this->excludes[] = new Request_RefreshParams_Exclude_Callback($callback); |
@@ -99,12 +99,12 @@ discard block |
||
99 | 99 | return $this; |
100 | 100 | } |
101 | 101 | |
102 | - /** |
|
103 | - * Excludes a request parameter by name. |
|
104 | - * |
|
105 | - * @param array $paramNames |
|
106 | - * @return Request_RefreshParams |
|
107 | - */ |
|
102 | + /** |
|
103 | + * Excludes a request parameter by name. |
|
104 | + * |
|
105 | + * @param array $paramNames |
|
106 | + * @return Request_RefreshParams |
|
107 | + */ |
|
108 | 108 | public function excludeParamsByName(array $paramNames) : Request_RefreshParams |
109 | 109 | { |
110 | 110 | foreach($paramNames as $name) |
@@ -115,15 +115,15 @@ discard block |
||
115 | 115 | return $this; |
116 | 116 | } |
117 | 117 | |
118 | - /** |
|
119 | - * Overrides a parameter: even if it exists, this |
|
120 | - * value will be used instead - even if it is on |
|
121 | - * the list of excluded parameters. |
|
122 | - * |
|
123 | - * @param string $paramName |
|
124 | - * @param mixed $paramValue |
|
125 | - * @return Request_RefreshParams |
|
126 | - */ |
|
118 | + /** |
|
119 | + * Overrides a parameter: even if it exists, this |
|
120 | + * value will be used instead - even if it is on |
|
121 | + * the list of excluded parameters. |
|
122 | + * |
|
123 | + * @param string $paramName |
|
124 | + * @param mixed $paramValue |
|
125 | + * @return Request_RefreshParams |
|
126 | + */ |
|
127 | 127 | public function overrideParam(string $paramName, $paramValue) : Request_RefreshParams |
128 | 128 | { |
129 | 129 | $this->overrides[$paramName] = $paramValue; |
@@ -131,12 +131,12 @@ discard block |
||
131 | 131 | return $this; |
132 | 132 | } |
133 | 133 | |
134 | - /** |
|
135 | - * Overrides an array of parameters. |
|
136 | - * |
|
137 | - * @param array $params |
|
138 | - * @return Request_RefreshParams |
|
139 | - */ |
|
134 | + /** |
|
135 | + * Overrides an array of parameters. |
|
136 | + * |
|
137 | + * @param array $params |
|
138 | + * @return Request_RefreshParams |
|
139 | + */ |
|
140 | 140 | public function overrideParams(array $params) : Request_RefreshParams |
141 | 141 | { |
142 | 142 | foreach($params as $name => $value) |
@@ -147,14 +147,14 @@ discard block |
||
147 | 147 | return $this; |
148 | 148 | } |
149 | 149 | |
150 | - /** |
|
151 | - * Resolves all the parameter exclusions that should |
|
152 | - * be applied to the list of parameters. This includes |
|
153 | - * the manually added exclusions and the dynamic exclusions |
|
154 | - * like the session name. |
|
155 | - * |
|
156 | - * @return Request_RefreshParams_Exclude[] |
|
157 | - */ |
|
150 | + /** |
|
151 | + * Resolves all the parameter exclusions that should |
|
152 | + * be applied to the list of parameters. This includes |
|
153 | + * the manually added exclusions and the dynamic exclusions |
|
154 | + * like the session name. |
|
155 | + * |
|
156 | + * @return Request_RefreshParams_Exclude[] |
|
157 | + */ |
|
158 | 158 | private function resolveExcludes() : array |
159 | 159 | { |
160 | 160 | $excludes = $this->excludes; |
@@ -165,12 +165,12 @@ discard block |
||
165 | 165 | return $excludes; |
166 | 166 | } |
167 | 167 | |
168 | - /** |
|
169 | - * Automatically excludes the session name from the |
|
170 | - * parameters, if present. |
|
171 | - * |
|
172 | - * @param Request_RefreshParams_Exclude[] $excludes |
|
173 | - */ |
|
168 | + /** |
|
169 | + * Automatically excludes the session name from the |
|
170 | + * parameters, if present. |
|
171 | + * |
|
172 | + * @param Request_RefreshParams_Exclude[] $excludes |
|
173 | + */ |
|
174 | 174 | private function autoExcludeSessionName(array &$excludes) : void |
175 | 175 | { |
176 | 176 | if($this->getBoolOption('exclude-session-name')) |
@@ -179,12 +179,12 @@ discard block |
||
179 | 179 | } |
180 | 180 | } |
181 | 181 | |
182 | - /** |
|
183 | - * Automatically excludes the HTML_QuickForm2 submit |
|
184 | - * tracking variable, when enabled. |
|
185 | - * |
|
186 | - * @param Request_RefreshParams_Exclude[] $excludes |
|
187 | - */ |
|
182 | + /** |
|
183 | + * Automatically excludes the HTML_QuickForm2 submit |
|
184 | + * tracking variable, when enabled. |
|
185 | + * |
|
186 | + * @param Request_RefreshParams_Exclude[] $excludes |
|
187 | + */ |
|
188 | 188 | private function autoExcludeQuickform(array &$excludes) : void |
189 | 189 | { |
190 | 190 | if($this->getBoolOption('exclude-quickform-submitter')) |
@@ -196,12 +196,12 @@ discard block |
||
196 | 196 | } |
197 | 197 | } |
198 | 198 | |
199 | - /** |
|
200 | - * Retrieves the list of parameters matching the |
|
201 | - * current settings. |
|
202 | - * |
|
203 | - * @return array<string,mixed> |
|
204 | - */ |
|
199 | + /** |
|
200 | + * Retrieves the list of parameters matching the |
|
201 | + * current settings. |
|
202 | + * |
|
203 | + * @return array<string,mixed> |
|
204 | + */ |
|
205 | 205 | public function getParams() : array |
206 | 206 | { |
207 | 207 | $params = $this->removeExcluded($_REQUEST); |
@@ -217,12 +217,12 @@ discard block |
||
217 | 217 | return $params; |
218 | 218 | } |
219 | 219 | |
220 | - /** |
|
221 | - * Removes all excluded parameters from the array. |
|
222 | - * |
|
223 | - * @param array<string,mixed> $params |
|
224 | - * @return array<string,mixed> |
|
225 | - */ |
|
220 | + /** |
|
221 | + * Removes all excluded parameters from the array. |
|
222 | + * |
|
223 | + * @param array<string,mixed> $params |
|
224 | + * @return array<string,mixed> |
|
225 | + */ |
|
226 | 226 | private function removeExcluded(array $params) : array |
227 | 227 | { |
228 | 228 | $result = array(); |
@@ -240,14 +240,14 @@ discard block |
||
240 | 240 | return $result; |
241 | 241 | } |
242 | 242 | |
243 | - /** |
|
244 | - * Checks all configured exclusions to see if the |
|
245 | - * parameter should be excluded or not. |
|
246 | - * |
|
247 | - * @param string $paramName |
|
248 | - * @param mixed $paramValue |
|
249 | - * @return bool |
|
250 | - */ |
|
243 | + /** |
|
244 | + * Checks all configured exclusions to see if the |
|
245 | + * parameter should be excluded or not. |
|
246 | + * |
|
247 | + * @param string $paramName |
|
248 | + * @param mixed $paramValue |
|
249 | + * @return bool |
|
250 | + */ |
|
251 | 251 | public function isExcluded(string $paramName, $paramValue) : bool |
252 | 252 | { |
253 | 253 | $excludes = $this->resolveExcludes(); |
@@ -19,51 +19,51 @@ discard block |
||
19 | 19 | */ |
20 | 20 | class RequestHelper_Response |
21 | 21 | { |
22 | - /** |
|
23 | - * @var RequestHelper |
|
24 | - */ |
|
22 | + /** |
|
23 | + * @var RequestHelper |
|
24 | + */ |
|
25 | 25 | protected $request; |
26 | 26 | |
27 | - /** |
|
28 | - * @var string |
|
29 | - */ |
|
27 | + /** |
|
28 | + * @var string |
|
29 | + */ |
|
30 | 30 | protected $body = ''; |
31 | 31 | |
32 | - /** |
|
33 | - * @var array |
|
34 | - */ |
|
32 | + /** |
|
33 | + * @var array |
|
34 | + */ |
|
35 | 35 | protected $info; |
36 | 36 | |
37 | - /** |
|
38 | - * @var bool |
|
39 | - */ |
|
37 | + /** |
|
38 | + * @var bool |
|
39 | + */ |
|
40 | 40 | protected $isError = false; |
41 | 41 | |
42 | - /** |
|
43 | - * @var string |
|
44 | - */ |
|
42 | + /** |
|
43 | + * @var string |
|
44 | + */ |
|
45 | 45 | protected $errorMessage = ''; |
46 | 46 | |
47 | - /** |
|
48 | - * @var integer |
|
49 | - */ |
|
47 | + /** |
|
48 | + * @var integer |
|
49 | + */ |
|
50 | 50 | protected $errorCode = 0; |
51 | 51 | |
52 | - /** |
|
53 | - * @param RequestHelper $helper |
|
54 | - * @param array $info The CURL info array from curl_getinfo(). |
|
55 | - */ |
|
52 | + /** |
|
53 | + * @param RequestHelper $helper |
|
54 | + * @param array $info The CURL info array from curl_getinfo(). |
|
55 | + */ |
|
56 | 56 | public function __construct(RequestHelper $helper, array $info) |
57 | 57 | { |
58 | 58 | $this->request = $helper; |
59 | 59 | $this->info = $info; |
60 | 60 | } |
61 | 61 | |
62 | - /** |
|
63 | - * Retrieves the request instance that initiated the request. |
|
64 | - * |
|
65 | - * @return RequestHelper |
|
66 | - */ |
|
62 | + /** |
|
63 | + * Retrieves the request instance that initiated the request. |
|
64 | + * |
|
65 | + * @return RequestHelper |
|
66 | + */ |
|
67 | 67 | public function getRequest() : RequestHelper |
68 | 68 | { |
69 | 69 | return $this->request; |
@@ -84,79 +84,79 @@ discard block |
||
84 | 84 | return $this; |
85 | 85 | } |
86 | 86 | |
87 | - /** |
|
88 | - * Whether an error occurred in the request. |
|
89 | - * @return bool |
|
90 | - */ |
|
87 | + /** |
|
88 | + * Whether an error occurred in the request. |
|
89 | + * @return bool |
|
90 | + */ |
|
91 | 91 | public function isError() : bool |
92 | 92 | { |
93 | 93 | return $this->isError; |
94 | 94 | } |
95 | 95 | |
96 | - /** |
|
97 | - * Whether the request timed out. |
|
98 | - * @return bool |
|
99 | - */ |
|
96 | + /** |
|
97 | + * Whether the request timed out. |
|
98 | + * @return bool |
|
99 | + */ |
|
100 | 100 | public function isTimeout() : bool |
101 | 101 | { |
102 | 102 | return $this->errorCode === RequestHelper_CURL::OPERATION_TIMEDOUT; |
103 | 103 | } |
104 | 104 | |
105 | - /** |
|
106 | - * Retrieves the native error message, if an error occurred. |
|
107 | - * @return string |
|
108 | - */ |
|
105 | + /** |
|
106 | + * Retrieves the native error message, if an error occurred. |
|
107 | + * @return string |
|
108 | + */ |
|
109 | 109 | public function getErrorMessage() : string |
110 | 110 | { |
111 | 111 | return $this->errorMessage; |
112 | 112 | } |
113 | 113 | |
114 | - /** |
|
115 | - * Retrieves the native CURL error code, if an error occurred. |
|
116 | - * @return int |
|
117 | - * @see RequestHelper_CURL For a list of error codes. |
|
118 | - */ |
|
114 | + /** |
|
115 | + * Retrieves the native CURL error code, if an error occurred. |
|
116 | + * @return int |
|
117 | + * @see RequestHelper_CURL For a list of error codes. |
|
118 | + */ |
|
119 | 119 | public function getErrorCode() : int |
120 | 120 | { |
121 | 121 | return $this->errorCode; |
122 | 122 | } |
123 | 123 | |
124 | - /** |
|
125 | - * Retrieves the full body of the request. |
|
126 | - * |
|
127 | - * @return string |
|
128 | - */ |
|
124 | + /** |
|
125 | + * Retrieves the full body of the request. |
|
126 | + * |
|
127 | + * @return string |
|
128 | + */ |
|
129 | 129 | public function getRequestBody() : string |
130 | 130 | { |
131 | 131 | return $this->request->getBody(); |
132 | 132 | } |
133 | 133 | |
134 | - /** |
|
135 | - * Retrieves the body of the response, if any. |
|
136 | - * |
|
137 | - * @return string |
|
138 | - */ |
|
134 | + /** |
|
135 | + * Retrieves the body of the response, if any. |
|
136 | + * |
|
137 | + * @return string |
|
138 | + */ |
|
139 | 139 | public function getResponseBody() : string |
140 | 140 | { |
141 | 141 | return $this->body; |
142 | 142 | } |
143 | 143 | |
144 | - /** |
|
145 | - * The response HTTP code. |
|
146 | - * |
|
147 | - * @return int The code, or 0 if none was sent (on error). |
|
148 | - */ |
|
144 | + /** |
|
145 | + * The response HTTP code. |
|
146 | + * |
|
147 | + * @return int The code, or 0 if none was sent (on error). |
|
148 | + */ |
|
149 | 149 | public function getCode() : int |
150 | 150 | { |
151 | 151 | return intval($this->getInfoKey('http_code')); |
152 | 152 | } |
153 | 153 | |
154 | - /** |
|
155 | - * Retrieves the actual headers that were sent in the request: |
|
156 | - * one header by entry in the indexed array. |
|
157 | - * |
|
158 | - * @return array |
|
159 | - */ |
|
154 | + /** |
|
155 | + * Retrieves the actual headers that were sent in the request: |
|
156 | + * one header by entry in the indexed array. |
|
157 | + * |
|
158 | + * @return array |
|
159 | + */ |
|
160 | 160 | public function getHeaders() : array |
161 | 161 | { |
162 | 162 | return ConvertHelper::explodeTrim("\n", $this->getInfoKey('request_header')); |
@@ -22,9 +22,9 @@ discard block |
||
22 | 22 | { |
23 | 23 | use Traits_Optionable; |
24 | 24 | |
25 | - /** |
|
26 | - * @var URLInfo |
|
27 | - */ |
|
25 | + /** |
|
26 | + * @var URLInfo |
|
27 | + */ |
|
28 | 28 | private $url; |
29 | 29 | |
30 | 30 | public function __construct(URLInfo $url) |
@@ -41,13 +41,13 @@ discard block |
||
41 | 41 | ); |
42 | 42 | } |
43 | 43 | |
44 | - /** |
|
45 | - * Whether to verify the host's SSL certificate, in |
|
46 | - * case of an https connection. |
|
47 | - * |
|
48 | - * @param bool $verifySSL |
|
49 | - * @return URLInfo_ConnectionTester |
|
50 | - */ |
|
44 | + /** |
|
45 | + * Whether to verify the host's SSL certificate, in |
|
46 | + * case of an https connection. |
|
47 | + * |
|
48 | + * @param bool $verifySSL |
|
49 | + * @return URLInfo_ConnectionTester |
|
50 | + */ |
|
51 | 51 | public function setVerifySSL(bool $verifySSL=true) : URLInfo_ConnectionTester |
52 | 52 | { |
53 | 53 | $this->setOption('verify-ssl', $verifySSL); |
@@ -81,12 +81,12 @@ discard block |
||
81 | 81 | return $this->getIntOption('timeout'); |
82 | 82 | } |
83 | 83 | |
84 | - /** |
|
85 | - * Initializes the CURL instance. |
|
86 | - * |
|
87 | - * @throws BaseException |
|
88 | - * @return resource |
|
89 | - */ |
|
84 | + /** |
|
85 | + * Initializes the CURL instance. |
|
86 | + * |
|
87 | + * @throws BaseException |
|
88 | + * @return resource |
|
89 | + */ |
|
90 | 90 | private function initCURL() |
91 | 91 | { |
92 | 92 | $ch = curl_init(); |
@@ -103,9 +103,9 @@ discard block |
||
103 | 103 | return $ch; |
104 | 104 | } |
105 | 105 | |
106 | - /** |
|
107 | - * @param resource $ch |
|
108 | - */ |
|
106 | + /** |
|
107 | + * @param resource $ch |
|
108 | + */ |
|
109 | 109 | private function configureOptions($ch) : void |
110 | 110 | { |
111 | 111 | if($this->isVerboseModeEnabled()) |
@@ -110,38 +110,38 @@ discard block |
||
110 | 110 | return $this; |
111 | 111 | } |
112 | 112 | |
113 | - /** |
|
114 | - * Whether to enable sorting the URLs alphabetically (disabled by default). |
|
115 | - * |
|
116 | - * @param bool $enabled |
|
117 | - * @return $this |
|
118 | - */ |
|
113 | + /** |
|
114 | + * Whether to enable sorting the URLs alphabetically (disabled by default). |
|
115 | + * |
|
116 | + * @param bool $enabled |
|
117 | + * @return $this |
|
118 | + */ |
|
119 | 119 | public function enableSorting(bool $enabled=true) : ConvertHelper_URLFinder |
120 | 120 | { |
121 | 121 | $this->setOption('sorting', $enabled); |
122 | 122 | return $this; |
123 | 123 | } |
124 | 124 | |
125 | - /** |
|
126 | - * Whether to include email addresses in the search. |
|
127 | - * This is only relevant when using the getURLs() |
|
128 | - * method. |
|
129 | - * |
|
130 | - * @param bool $include |
|
131 | - * @return ConvertHelper_URLFinder |
|
132 | - */ |
|
125 | + /** |
|
126 | + * Whether to include email addresses in the search. |
|
127 | + * This is only relevant when using the getURLs() |
|
128 | + * method. |
|
129 | + * |
|
130 | + * @param bool $include |
|
131 | + * @return ConvertHelper_URLFinder |
|
132 | + */ |
|
133 | 133 | public function includeEmails(bool $include=true) : ConvertHelper_URLFinder |
134 | 134 | { |
135 | 135 | $this->setOption('include-emails', $include); |
136 | 136 | return $this; |
137 | 137 | } |
138 | 138 | |
139 | - /** |
|
140 | - * Whether to omit the mailto: that is automatically added to all email addresses. |
|
141 | - * |
|
142 | - * @param bool $omit |
|
143 | - * @return ConvertHelper_URLFinder |
|
144 | - */ |
|
139 | + /** |
|
140 | + * Whether to omit the mailto: that is automatically added to all email addresses. |
|
141 | + * |
|
142 | + * @param bool $omit |
|
143 | + * @return ConvertHelper_URLFinder |
|
144 | + */ |
|
145 | 145 | public function omitMailto(bool $omit=true) : ConvertHelper_URLFinder |
146 | 146 | { |
147 | 147 | $this->setOption('omit-mailto', $omit); |
@@ -267,11 +267,11 @@ discard block |
||
267 | 267 | ); |
268 | 268 | } |
269 | 269 | |
270 | - /** |
|
271 | - * Fetches all URLs that can be found in the subject string. |
|
272 | - * |
|
273 | - * @return string[] |
|
274 | - */ |
|
270 | + /** |
|
271 | + * Fetches all URLs that can be found in the subject string. |
|
272 | + * |
|
273 | + * @return string[] |
|
274 | + */ |
|
275 | 275 | public function getURLs() : array |
276 | 276 | { |
277 | 277 | $this->parse(); |
@@ -474,13 +474,13 @@ discard block |
||
474 | 474 | return array_pop($parts); |
475 | 475 | } |
476 | 476 | |
477 | - /** |
|
478 | - * Retrieves all email addresses from the subject string. |
|
479 | - * |
|
480 | - * @return string[] |
|
481 | - * |
|
482 | - * @see omitMailto() |
|
483 | - */ |
|
477 | + /** |
|
478 | + * Retrieves all email addresses from the subject string. |
|
479 | + * |
|
480 | + * @return string[] |
|
481 | + * |
|
482 | + * @see omitMailto() |
|
483 | + */ |
|
484 | 484 | public function getEmails() : array |
485 | 485 | { |
486 | 486 | $this->parse(); |
@@ -506,11 +506,11 @@ discard block |
||
506 | 506 | return $result; |
507 | 507 | } |
508 | 508 | |
509 | - /** |
|
510 | - * Retrieves all URLs as URLInfo instances. |
|
511 | - * |
|
512 | - * @return URLInfo[] |
|
513 | - */ |
|
509 | + /** |
|
510 | + * Retrieves all URLs as URLInfo instances. |
|
511 | + * |
|
512 | + * @return URLInfo[] |
|
513 | + */ |
|
514 | 514 | public function getInfos() : array |
515 | 515 | { |
516 | 516 | $this->parse(); |
@@ -23,24 +23,24 @@ discard block |
||
23 | 23 | */ |
24 | 24 | class URLInfo_Parser |
25 | 25 | { |
26 | - /** |
|
27 | - * @var string |
|
28 | - */ |
|
26 | + /** |
|
27 | + * @var string |
|
28 | + */ |
|
29 | 29 | protected $url; |
30 | 30 | |
31 | - /** |
|
32 | - * @var bool |
|
33 | - */ |
|
31 | + /** |
|
32 | + * @var bool |
|
33 | + */ |
|
34 | 34 | protected $isValid = false; |
35 | 35 | |
36 | - /** |
|
37 | - * @var array |
|
38 | - */ |
|
36 | + /** |
|
37 | + * @var array |
|
38 | + */ |
|
39 | 39 | protected $info; |
40 | 40 | |
41 | - /** |
|
42 | - * @var array|NULL |
|
43 | - */ |
|
41 | + /** |
|
42 | + * @var array|NULL |
|
43 | + */ |
|
44 | 44 | protected $error; |
45 | 45 | |
46 | 46 | /** |
@@ -57,25 +57,25 @@ discard block |
||
57 | 57 | 'git' |
58 | 58 | ); |
59 | 59 | |
60 | - /** |
|
61 | - * Stores a list of all unicode characters in the URL |
|
62 | - * that have been filtered out before parsing it with |
|
63 | - * parse_url. |
|
64 | - * |
|
65 | - * @var string[]string |
|
66 | - */ |
|
60 | + /** |
|
61 | + * Stores a list of all unicode characters in the URL |
|
62 | + * that have been filtered out before parsing it with |
|
63 | + * parse_url. |
|
64 | + * |
|
65 | + * @var string[]string |
|
66 | + */ |
|
67 | 67 | protected $unicodeChars = array(); |
68 | 68 | |
69 | - /** |
|
70 | - * @var bool |
|
71 | - */ |
|
69 | + /** |
|
70 | + * @var bool |
|
71 | + */ |
|
72 | 72 | protected $encodeUTF = false; |
73 | 73 | |
74 | - /** |
|
75 | - * |
|
76 | - * @param string $url The target URL. |
|
77 | - * @param bool $encodeUTF Whether to URL encode any plain text unicode characters. |
|
78 | - */ |
|
74 | + /** |
|
75 | + * |
|
76 | + * @param string $url The target URL. |
|
77 | + * @param bool $encodeUTF Whether to URL encode any plain text unicode characters. |
|
78 | + */ |
|
79 | 79 | public function __construct(string $url, bool $encodeUTF) |
80 | 80 | { |
81 | 81 | $this->url = $url; |
@@ -88,12 +88,12 @@ discard block |
||
88 | 88 | } |
89 | 89 | } |
90 | 90 | |
91 | - /** |
|
92 | - * Retrieves the array as parsed by PHP's parse_url, |
|
93 | - * filtered and adjusted as necessary. |
|
94 | - * |
|
95 | - * @return array |
|
96 | - */ |
|
91 | + /** |
|
92 | + * Retrieves the array as parsed by PHP's parse_url, |
|
93 | + * filtered and adjusted as necessary. |
|
94 | + * |
|
95 | + * @return array |
|
96 | + */ |
|
97 | 97 | public function getInfo() : array |
98 | 98 | { |
99 | 99 | return $this->info; |
@@ -115,11 +115,11 @@ discard block |
||
115 | 115 | } |
116 | 116 | } |
117 | 117 | |
118 | - /** |
|
119 | - * Finds any non-url encoded unicode characters in |
|
120 | - * the URL, and encodes them before the URL is |
|
121 | - * passed to parse_url. |
|
122 | - */ |
|
118 | + /** |
|
119 | + * Finds any non-url encoded unicode characters in |
|
120 | + * the URL, and encodes them before the URL is |
|
121 | + * passed to parse_url. |
|
122 | + */ |
|
123 | 123 | protected function filterUnicodeChars() : void |
124 | 124 | { |
125 | 125 | $chars = ConvertHelper::string2array($this->url); |
@@ -238,11 +238,11 @@ discard block |
||
238 | 238 | return false; |
239 | 239 | } |
240 | 240 | |
241 | - /** |
|
242 | - * Goes through all information in the parse_url result |
|
243 | - * array, and attempts to fix any user errors in formatting |
|
244 | - * that can be recovered from, mostly regarding stray spaces. |
|
245 | - */ |
|
241 | + /** |
|
242 | + * Goes through all information in the parse_url result |
|
243 | + * array, and attempts to fix any user errors in formatting |
|
244 | + * that can be recovered from, mostly regarding stray spaces. |
|
245 | + */ |
|
246 | 246 | protected function filterParsed() : void |
247 | 247 | { |
248 | 248 | $this->info['params'] = array(); |
@@ -284,13 +284,13 @@ discard block |
||
284 | 284 | } |
285 | 285 | } |
286 | 286 | |
287 | - /** |
|
288 | - * Recursively goes through the array, and converts all previously |
|
289 | - * URL encoded characters with their unicode character counterparts. |
|
290 | - * |
|
291 | - * @param array $subject |
|
292 | - * @return array |
|
293 | - */ |
|
287 | + /** |
|
288 | + * Recursively goes through the array, and converts all previously |
|
289 | + * URL encoded characters with their unicode character counterparts. |
|
290 | + * |
|
291 | + * @param array $subject |
|
292 | + * @return array |
|
293 | + */ |
|
294 | 294 | protected function restoreUnicodeChars(array $subject) : array |
295 | 295 | { |
296 | 296 | $result = array(); |
@@ -314,13 +314,13 @@ discard block |
||
314 | 314 | return $result; |
315 | 315 | } |
316 | 316 | |
317 | - /** |
|
318 | - * Replaces all URL encoded unicode characters |
|
319 | - * in the string with the unicode character. |
|
320 | - * |
|
321 | - * @param string $string |
|
322 | - * @return string |
|
323 | - */ |
|
317 | + /** |
|
318 | + * Replaces all URL encoded unicode characters |
|
319 | + * in the string with the unicode character. |
|
320 | + * |
|
321 | + * @param string $string |
|
322 | + * @return string |
|
323 | + */ |
|
324 | 324 | protected function restoreUnicodeChar(string $string) : string |
325 | 325 | { |
326 | 326 | if(strstr($string, '%')) |
@@ -404,21 +404,21 @@ discard block |
||
404 | 404 | ); |
405 | 405 | } |
406 | 406 | |
407 | - /** |
|
408 | - * Checks whether the URL that was parsed is valid. |
|
409 | - * @return bool |
|
410 | - */ |
|
407 | + /** |
|
408 | + * Checks whether the URL that was parsed is valid. |
|
409 | + * @return bool |
|
410 | + */ |
|
411 | 411 | public function isValid() : bool |
412 | 412 | { |
413 | 413 | return $this->isValid; |
414 | 414 | } |
415 | 415 | |
416 | - /** |
|
417 | - * If the validation failed, retrieves the validation |
|
418 | - * error message. |
|
419 | - * |
|
420 | - * @return string |
|
421 | - */ |
|
416 | + /** |
|
417 | + * If the validation failed, retrieves the validation |
|
418 | + * error message. |
|
419 | + * |
|
420 | + * @return string |
|
421 | + */ |
|
422 | 422 | public function getErrorMessage() : string |
423 | 423 | { |
424 | 424 | if(isset($this->error)) { |
@@ -428,12 +428,12 @@ discard block |
||
428 | 428 | return ''; |
429 | 429 | } |
430 | 430 | |
431 | - /** |
|
432 | - * If the validation failed, retrieves the validation |
|
433 | - * error code. |
|
434 | - * |
|
435 | - * @return int |
|
436 | - */ |
|
431 | + /** |
|
432 | + * If the validation failed, retrieves the validation |
|
433 | + * error code. |
|
434 | + * |
|
435 | + * @return int |
|
436 | + */ |
|
437 | 437 | public function getErrorCode() : int |
438 | 438 | { |
439 | 439 | if(isset($this->error)) { |
@@ -25,10 +25,10 @@ |
||
25 | 25 | * |
26 | 26 | * @return string |
27 | 27 | */ |
28 | - function render() : string; |
|
28 | + function render() : string; |
|
29 | 29 | |
30 | 30 | /** |
31 | 31 | * Renders the string and echos it. |
32 | 32 | */ |
33 | - function display() : void; |
|
33 | + function display() : void; |
|
34 | 34 | } |