@@ -39,42 +39,42 @@ discard block |
||
39 | 39 | const TYPE_PHONE = 'phone'; |
40 | 40 | const TYPE_URL = 'url'; |
41 | 41 | |
42 | - /** |
|
43 | - * The original URL that was passed to the constructor. |
|
44 | - * @var string |
|
45 | - */ |
|
42 | + /** |
|
43 | + * The original URL that was passed to the constructor. |
|
44 | + * @var string |
|
45 | + */ |
|
46 | 46 | protected $rawURL; |
47 | 47 | |
48 | - /** |
|
49 | - * @var array |
|
50 | - */ |
|
48 | + /** |
|
49 | + * @var array |
|
50 | + */ |
|
51 | 51 | protected $info; |
52 | 52 | |
53 | - /** |
|
54 | - * @var string[] |
|
55 | - */ |
|
53 | + /** |
|
54 | + * @var string[] |
|
55 | + */ |
|
56 | 56 | protected $excludedParams = array(); |
57 | 57 | |
58 | - /** |
|
59 | - * @var bool |
|
60 | - * @see URLInfo::setParamExclusion() |
|
61 | - */ |
|
58 | + /** |
|
59 | + * @var bool |
|
60 | + * @see URLInfo::setParamExclusion() |
|
61 | + */ |
|
62 | 62 | protected $paramExclusion = false; |
63 | 63 | |
64 | - /** |
|
65 | - * @var array |
|
66 | - * @see URLInfo::getTypeLabel() |
|
67 | - */ |
|
64 | + /** |
|
65 | + * @var array |
|
66 | + * @see URLInfo::getTypeLabel() |
|
67 | + */ |
|
68 | 68 | protected static $typeLabels; |
69 | 69 | |
70 | - /** |
|
71 | - * @var bool |
|
72 | - */ |
|
70 | + /** |
|
71 | + * @var bool |
|
72 | + */ |
|
73 | 73 | protected $highlightExcluded = false; |
74 | 74 | |
75 | - /** |
|
76 | - * @var array |
|
77 | - */ |
|
75 | + /** |
|
76 | + * @var array |
|
77 | + */ |
|
78 | 78 | protected $infoKeys = array( |
79 | 79 | 'scheme', |
80 | 80 | 'host', |
@@ -86,24 +86,24 @@ discard block |
||
86 | 86 | 'fragment' |
87 | 87 | ); |
88 | 88 | |
89 | - /** |
|
90 | - * @var string |
|
91 | - */ |
|
89 | + /** |
|
90 | + * @var string |
|
91 | + */ |
|
92 | 92 | protected $url; |
93 | 93 | |
94 | - /** |
|
95 | - * @var URLInfo_Parser |
|
96 | - */ |
|
94 | + /** |
|
95 | + * @var URLInfo_Parser |
|
96 | + */ |
|
97 | 97 | protected $parser; |
98 | 98 | |
99 | - /** |
|
100 | - * @var URLInfo_Normalizer |
|
101 | - */ |
|
99 | + /** |
|
100 | + * @var URLInfo_Normalizer |
|
101 | + */ |
|
102 | 102 | protected $normalizer; |
103 | 103 | |
104 | - /** |
|
105 | - * @var bool |
|
106 | - */ |
|
104 | + /** |
|
105 | + * @var bool |
|
106 | + */ |
|
107 | 107 | protected $encodeUTFChars = false; |
108 | 108 | |
109 | 109 | public function __construct(string $url) |
@@ -120,14 +120,14 @@ discard block |
||
120 | 120 | $this->info = $this->parser->getInfo(); |
121 | 121 | } |
122 | 122 | |
123 | - /** |
|
124 | - * Whether to URL encode any non-encoded UTF8 characters in the URL. |
|
125 | - * Default is to leave them as-is for better readability, since |
|
126 | - * browsers handle this well. |
|
127 | - * |
|
128 | - * @param bool $enabled |
|
129 | - * @return URLInfo |
|
130 | - */ |
|
123 | + /** |
|
124 | + * Whether to URL encode any non-encoded UTF8 characters in the URL. |
|
125 | + * Default is to leave them as-is for better readability, since |
|
126 | + * browsers handle this well. |
|
127 | + * |
|
128 | + * @param bool $enabled |
|
129 | + * @return URLInfo |
|
130 | + */ |
|
131 | 131 | public function setUTFEncoding(bool $enabled=true) : URLInfo |
132 | 132 | { |
133 | 133 | if($this->encodeUTFChars !== $enabled) |
@@ -144,13 +144,13 @@ discard block |
||
144 | 144 | return $this->encodeUTFChars; |
145 | 145 | } |
146 | 146 | |
147 | - /** |
|
148 | - * Filters an URL: removes control characters and the |
|
149 | - * like to have a clean URL to work with. |
|
150 | - * |
|
151 | - * @param string $url |
|
152 | - * @return string |
|
153 | - */ |
|
147 | + /** |
|
148 | + * Filters an URL: removes control characters and the |
|
149 | + * like to have a clean URL to work with. |
|
150 | + * |
|
151 | + * @param string $url |
|
152 | + * @return string |
|
153 | + */ |
|
154 | 154 | public static function filterURL(string $url) |
155 | 155 | { |
156 | 156 | return URLInfo_Filter::filter($url); |
@@ -180,12 +180,12 @@ discard block |
||
180 | 180 | return $this->info['type'] === self::TYPE_PHONE; |
181 | 181 | } |
182 | 182 | |
183 | - /** |
|
184 | - * Whether the URL is a regular URL, not one of the |
|
185 | - * other types like a phone number or email address. |
|
186 | - * |
|
187 | - * @return bool |
|
188 | - */ |
|
183 | + /** |
|
184 | + * Whether the URL is a regular URL, not one of the |
|
185 | + * other types like a phone number or email address. |
|
186 | + * |
|
187 | + * @return bool |
|
188 | + */ |
|
189 | 189 | public function isURL() : bool |
190 | 190 | { |
191 | 191 | $host = $this->getHost(); |
@@ -197,20 +197,20 @@ discard block |
||
197 | 197 | return $this->parser->isValid(); |
198 | 198 | } |
199 | 199 | |
200 | - /** |
|
201 | - * Retrieves the host name, or an empty string if none is present. |
|
202 | - * |
|
203 | - * @return string |
|
204 | - */ |
|
200 | + /** |
|
201 | + * Retrieves the host name, or an empty string if none is present. |
|
202 | + * |
|
203 | + * @return string |
|
204 | + */ |
|
205 | 205 | public function getHost() : string |
206 | 206 | { |
207 | 207 | return $this->getInfoKey('host'); |
208 | 208 | } |
209 | 209 | |
210 | - /** |
|
211 | - * Retrieves the path, or an empty string if none is present. |
|
212 | - * @return string |
|
213 | - */ |
|
210 | + /** |
|
211 | + * Retrieves the path, or an empty string if none is present. |
|
212 | + * @return string |
|
213 | + */ |
|
214 | 214 | public function getPath() : string |
215 | 215 | { |
216 | 216 | return $this->getInfoKey('path'); |
@@ -226,10 +226,10 @@ discard block |
||
226 | 226 | return $this->getInfoKey('scheme'); |
227 | 227 | } |
228 | 228 | |
229 | - /** |
|
230 | - * Retrieves the port specified in the URL, or -1 if none is preseent. |
|
231 | - * @return int |
|
232 | - */ |
|
229 | + /** |
|
230 | + * Retrieves the port specified in the URL, or -1 if none is preseent. |
|
231 | + * @return int |
|
232 | + */ |
|
233 | 233 | public function getPort() : int |
234 | 234 | { |
235 | 235 | $port = $this->getInfoKey('port'); |
@@ -241,13 +241,13 @@ discard block |
||
241 | 241 | return -1; |
242 | 242 | } |
243 | 243 | |
244 | - /** |
|
245 | - * Retrieves the raw query string, or an empty string if none is present. |
|
246 | - * |
|
247 | - * @return string |
|
248 | - * |
|
249 | - * @see URLInfo::getParams() |
|
250 | - */ |
|
244 | + /** |
|
245 | + * Retrieves the raw query string, or an empty string if none is present. |
|
246 | + * |
|
247 | + * @return string |
|
248 | + * |
|
249 | + * @see URLInfo::getParams() |
|
250 | + */ |
|
251 | 251 | public function getQuery() : string |
252 | 252 | { |
253 | 253 | return $this->getInfoKey('query'); |
@@ -263,20 +263,20 @@ discard block |
||
263 | 263 | return $this->getInfoKey('pass'); |
264 | 264 | } |
265 | 265 | |
266 | - /** |
|
267 | - * Whether the URL contains a port number. |
|
268 | - * @return bool |
|
269 | - */ |
|
266 | + /** |
|
267 | + * Whether the URL contains a port number. |
|
268 | + * @return bool |
|
269 | + */ |
|
270 | 270 | public function hasPort() : bool |
271 | 271 | { |
272 | 272 | return $this->getPort() !== -1; |
273 | 273 | } |
274 | 274 | |
275 | - /** |
|
276 | - * Alias for the hasParams() method. |
|
277 | - * @return bool |
|
278 | - * @see URLInfo::hasParams() |
|
279 | - */ |
|
275 | + /** |
|
276 | + * Alias for the hasParams() method. |
|
277 | + * @return bool |
|
278 | + * @see URLInfo::hasParams() |
|
279 | + */ |
|
280 | 280 | public function hasQuery() : bool |
281 | 281 | { |
282 | 282 | return $this->hasParams(); |
@@ -321,23 +321,23 @@ discard block |
||
321 | 321 | return ''; |
322 | 322 | } |
323 | 323 | |
324 | - /** |
|
325 | - * Retrieves a normalized URL: this ensures that all parameters |
|
326 | - * in the URL are always in the same order. |
|
327 | - * |
|
328 | - * @return string |
|
329 | - */ |
|
324 | + /** |
|
325 | + * Retrieves a normalized URL: this ensures that all parameters |
|
326 | + * in the URL are always in the same order. |
|
327 | + * |
|
328 | + * @return string |
|
329 | + */ |
|
330 | 330 | public function getNormalized() : string |
331 | 331 | { |
332 | 332 | return $this->normalize(true); |
333 | 333 | } |
334 | 334 | |
335 | - /** |
|
336 | - * Like getNormalized(), but if a username and password are present |
|
337 | - * in the URL, returns the URL without them. |
|
338 | - * |
|
339 | - * @return string |
|
340 | - */ |
|
335 | + /** |
|
336 | + * Like getNormalized(), but if a username and password are present |
|
337 | + * in the URL, returns the URL without them. |
|
338 | + * |
|
339 | + * @return string |
|
340 | + */ |
|
341 | 341 | public function getNormalizedWithoutAuth() : string |
342 | 342 | { |
343 | 343 | return $this->normalize(false); |
@@ -358,25 +358,25 @@ discard block |
||
358 | 358 | return $this->normalizer->normalize(); |
359 | 359 | } |
360 | 360 | |
361 | - /** |
|
362 | - * Creates a hash of the URL, which can be used for comparisons. |
|
363 | - * Since any parameters in the URL's query are sorted alphabetically, |
|
364 | - * the same links with a different parameter order will have the |
|
365 | - * same hash. |
|
366 | - * |
|
367 | - * @return string |
|
368 | - */ |
|
361 | + /** |
|
362 | + * Creates a hash of the URL, which can be used for comparisons. |
|
363 | + * Since any parameters in the URL's query are sorted alphabetically, |
|
364 | + * the same links with a different parameter order will have the |
|
365 | + * same hash. |
|
366 | + * |
|
367 | + * @return string |
|
368 | + */ |
|
369 | 369 | public function getHash() |
370 | 370 | { |
371 | 371 | return \AppUtils\ConvertHelper::string2shortHash($this->getNormalized()); |
372 | 372 | } |
373 | 373 | |
374 | - /** |
|
375 | - * Highlights the URL using HTML tags with specific highlighting |
|
376 | - * class names. |
|
377 | - * |
|
378 | - * @return string Will return an empty string if the URL is not valid. |
|
379 | - */ |
|
374 | + /** |
|
375 | + * Highlights the URL using HTML tags with specific highlighting |
|
376 | + * class names. |
|
377 | + * |
|
378 | + * @return string Will return an empty string if the URL is not valid. |
|
379 | + */ |
|
380 | 380 | public function getHighlighted() : string |
381 | 381 | { |
382 | 382 | if(!$this->isValid()) { |
@@ -410,15 +410,15 @@ discard block |
||
410 | 410 | return count($params); |
411 | 411 | } |
412 | 412 | |
413 | - /** |
|
414 | - * Retrieves all parameters specified in the url, |
|
415 | - * if any, as an associative array. |
|
416 | - * |
|
417 | - * NOTE: Ignores parameters that have been added |
|
418 | - * to the excluded parameters list. |
|
419 | - * |
|
420 | - * @return array |
|
421 | - */ |
|
413 | + /** |
|
414 | + * Retrieves all parameters specified in the url, |
|
415 | + * if any, as an associative array. |
|
416 | + * |
|
417 | + * NOTE: Ignores parameters that have been added |
|
418 | + * to the excluded parameters list. |
|
419 | + * |
|
420 | + * @return array |
|
421 | + */ |
|
422 | 422 | public function getParams() : array |
423 | 423 | { |
424 | 424 | if(!$this->paramExclusion || empty($this->excludedParams)) { |
@@ -436,22 +436,22 @@ discard block |
||
436 | 436 | return $keep; |
437 | 437 | } |
438 | 438 | |
439 | - /** |
|
440 | - * Retrieves the names of all parameters present in the URL, if any. |
|
441 | - * @return string[] |
|
442 | - */ |
|
439 | + /** |
|
440 | + * Retrieves the names of all parameters present in the URL, if any. |
|
441 | + * @return string[] |
|
442 | + */ |
|
443 | 443 | public function getParamNames() : array |
444 | 444 | { |
445 | 445 | $params = $this->getParams(); |
446 | 446 | return array_keys($params); |
447 | 447 | } |
448 | 448 | |
449 | - /** |
|
450 | - * Retrieves a specific parameter value from the URL. |
|
451 | - * |
|
452 | - * @param string $name |
|
453 | - * @return string The parameter value, or an empty string if it does not exist. |
|
454 | - */ |
|
449 | + /** |
|
450 | + * Retrieves a specific parameter value from the URL. |
|
451 | + * |
|
452 | + * @param string $name |
|
453 | + * @return string The parameter value, or an empty string if it does not exist. |
|
454 | + */ |
|
455 | 455 | public function getParam(string $name) : string |
456 | 456 | { |
457 | 457 | if(isset($this->info['params'][$name])) { |
@@ -461,16 +461,16 @@ discard block |
||
461 | 461 | return ''; |
462 | 462 | } |
463 | 463 | |
464 | - /** |
|
465 | - * Excludes an URL parameter entirely if present: |
|
466 | - * the parser will act as if the parameter was not |
|
467 | - * even present in the source URL, effectively |
|
468 | - * stripping it. |
|
469 | - * |
|
470 | - * @param string $name |
|
471 | - * @param string $reason A human readable explanation why this is excluded - used when highlighting links. |
|
472 | - * @return URLInfo |
|
473 | - */ |
|
464 | + /** |
|
465 | + * Excludes an URL parameter entirely if present: |
|
466 | + * the parser will act as if the parameter was not |
|
467 | + * even present in the source URL, effectively |
|
468 | + * stripping it. |
|
469 | + * |
|
470 | + * @param string $name |
|
471 | + * @param string $reason A human readable explanation why this is excluded - used when highlighting links. |
|
472 | + * @return URLInfo |
|
473 | + */ |
|
474 | 474 | public function excludeParam(string $name, string $reason) : URLInfo |
475 | 475 | { |
476 | 476 | if(!isset($this->excludedParams[$name])) |
@@ -523,25 +523,25 @@ discard block |
||
523 | 523 | return self::$typeLabels[$this->getType()]; |
524 | 524 | } |
525 | 525 | |
526 | - /** |
|
527 | - * Whether excluded parameters should be highlighted in |
|
528 | - * a different color in the URL when using the |
|
529 | - * {@link URLInfo::getHighlighted()} method. |
|
530 | - * |
|
531 | - * @param bool $highlight |
|
532 | - * @return URLInfo |
|
533 | - */ |
|
526 | + /** |
|
527 | + * Whether excluded parameters should be highlighted in |
|
528 | + * a different color in the URL when using the |
|
529 | + * {@link URLInfo::getHighlighted()} method. |
|
530 | + * |
|
531 | + * @param bool $highlight |
|
532 | + * @return URLInfo |
|
533 | + */ |
|
534 | 534 | public function setHighlightExcluded(bool $highlight=true) : URLInfo |
535 | 535 | { |
536 | 536 | $this->highlightExcluded = $highlight; |
537 | 537 | return $this; |
538 | 538 | } |
539 | 539 | |
540 | - /** |
|
541 | - * Returns an array with all relevant URL information. |
|
542 | - * |
|
543 | - * @return array |
|
544 | - */ |
|
540 | + /** |
|
541 | + * Returns an array with all relevant URL information. |
|
542 | + * |
|
543 | + * @return array |
|
544 | + */ |
|
545 | 545 | public function toArray() : array |
546 | 546 | { |
547 | 547 | return array( |
@@ -585,24 +585,24 @@ discard block |
||
585 | 585 | return $this; |
586 | 586 | } |
587 | 587 | |
588 | - /** |
|
589 | - * Whether the parameter exclusion mode is enabled: |
|
590 | - * In this case, if any parameters have been added to the |
|
591 | - * exclusion list, all relevant methods will exclude these. |
|
592 | - * |
|
593 | - * @return bool |
|
594 | - */ |
|
588 | + /** |
|
589 | + * Whether the parameter exclusion mode is enabled: |
|
590 | + * In this case, if any parameters have been added to the |
|
591 | + * exclusion list, all relevant methods will exclude these. |
|
592 | + * |
|
593 | + * @return bool |
|
594 | + */ |
|
595 | 595 | public function isParamExclusionEnabled() : bool |
596 | 596 | { |
597 | 597 | return $this->paramExclusion; |
598 | 598 | } |
599 | 599 | |
600 | - /** |
|
601 | - * Checks whether the link contains any parameters that |
|
602 | - * are on the list of excluded parameters. |
|
603 | - * |
|
604 | - * @return bool |
|
605 | - */ |
|
600 | + /** |
|
601 | + * Checks whether the link contains any parameters that |
|
602 | + * are on the list of excluded parameters. |
|
603 | + * |
|
604 | + * @return bool |
|
605 | + */ |
|
606 | 606 | public function containsExcludedParams() : bool |
607 | 607 | { |
608 | 608 | if(empty($this->excludedParams)) { |
@@ -670,16 +670,16 @@ discard block |
||
670 | 670 | return $this->highlightExcluded; |
671 | 671 | } |
672 | 672 | |
673 | - /** |
|
674 | - * Checks if the URL exists, i.e. can be connected to. Will return |
|
675 | - * true if the returned HTTP status code is `200` or `302`. |
|
676 | - * |
|
677 | - * NOTE: If the target URL requires HTTP authentication, the username |
|
678 | - * and password should be integrated into the URL. |
|
679 | - * |
|
680 | - * @return bool |
|
681 | - * @throws BaseException |
|
682 | - */ |
|
673 | + /** |
|
674 | + * Checks if the URL exists, i.e. can be connected to. Will return |
|
675 | + * true if the returned HTTP status code is `200` or `302`. |
|
676 | + * |
|
677 | + * NOTE: If the target URL requires HTTP authentication, the username |
|
678 | + * and password should be integrated into the URL. |
|
679 | + * |
|
680 | + * @return bool |
|
681 | + * @throws BaseException |
|
682 | + */ |
|
683 | 683 | public function tryConnect(bool $verifySSL=true) : bool |
684 | 684 | { |
685 | 685 | requireCURL(); |
@@ -128,9 +128,9 @@ discard block |
||
128 | 128 | * @param bool $enabled |
129 | 129 | * @return URLInfo |
130 | 130 | */ |
131 | - public function setUTFEncoding(bool $enabled=true) : URLInfo |
|
131 | + public function setUTFEncoding(bool $enabled = true) : URLInfo |
|
132 | 132 | { |
133 | - if($this->encodeUTFChars !== $enabled) |
|
133 | + if ($this->encodeUTFChars !== $enabled) |
|
134 | 134 | { |
135 | 135 | $this->encodeUTFChars = $enabled; |
136 | 136 | $this->parse(); // re-parse the URL to apply the changes |
@@ -234,7 +234,7 @@ discard block |
||
234 | 234 | { |
235 | 235 | $port = $this->getInfoKey('port'); |
236 | 236 | |
237 | - if(!empty($port)) { |
|
237 | + if (!empty($port)) { |
|
238 | 238 | return (int)$port; |
239 | 239 | } |
240 | 240 | |
@@ -314,7 +314,7 @@ discard block |
||
314 | 314 | |
315 | 315 | protected function getInfoKey(string $name) : string |
316 | 316 | { |
317 | - if(isset($this->info[$name])) { |
|
317 | + if (isset($this->info[$name])) { |
|
318 | 318 | return (string)$this->info[$name]; |
319 | 319 | } |
320 | 320 | |
@@ -343,13 +343,13 @@ discard block |
||
343 | 343 | return $this->normalize(false); |
344 | 344 | } |
345 | 345 | |
346 | - protected function normalize(bool $auth=true) : string |
|
346 | + protected function normalize(bool $auth = true) : string |
|
347 | 347 | { |
348 | - if(!$this->isValid()) { |
|
348 | + if (!$this->isValid()) { |
|
349 | 349 | return ''; |
350 | 350 | } |
351 | 351 | |
352 | - if(!isset($this->normalizer)) { |
|
352 | + if (!isset($this->normalizer)) { |
|
353 | 353 | $this->normalizer = new URLInfo_Normalizer($this); |
354 | 354 | } |
355 | 355 | |
@@ -379,7 +379,7 @@ discard block |
||
379 | 379 | */ |
380 | 380 | public function getHighlighted() : string |
381 | 381 | { |
382 | - if(!$this->isValid()) { |
|
382 | + if (!$this->isValid()) { |
|
383 | 383 | return ''; |
384 | 384 | } |
385 | 385 | |
@@ -421,14 +421,14 @@ discard block |
||
421 | 421 | */ |
422 | 422 | public function getParams() : array |
423 | 423 | { |
424 | - if(!$this->paramExclusion || empty($this->excludedParams)) { |
|
424 | + if (!$this->paramExclusion || empty($this->excludedParams)) { |
|
425 | 425 | return $this->info['params']; |
426 | 426 | } |
427 | 427 | |
428 | 428 | $keep = array(); |
429 | - foreach($this->info['params'] as $name => $value) |
|
429 | + foreach ($this->info['params'] as $name => $value) |
|
430 | 430 | { |
431 | - if(!isset($this->excludedParams[$name])) { |
|
431 | + if (!isset($this->excludedParams[$name])) { |
|
432 | 432 | $keep[$name] = $value; |
433 | 433 | } |
434 | 434 | } |
@@ -454,7 +454,7 @@ discard block |
||
454 | 454 | */ |
455 | 455 | public function getParam(string $name) : string |
456 | 456 | { |
457 | - if(isset($this->info['params'][$name])) { |
|
457 | + if (isset($this->info['params'][$name])) { |
|
458 | 458 | return $this->info['params'][$name]; |
459 | 459 | } |
460 | 460 | |
@@ -473,7 +473,7 @@ discard block |
||
473 | 473 | */ |
474 | 474 | public function excludeParam(string $name, string $reason) : URLInfo |
475 | 475 | { |
476 | - if(!isset($this->excludedParams[$name])) |
|
476 | + if (!isset($this->excludedParams[$name])) |
|
477 | 477 | { |
478 | 478 | $this->excludedParams[$name] = $reason; |
479 | 479 | $this->setParamExclusion(); |
@@ -499,7 +499,7 @@ discard block |
||
499 | 499 | |
500 | 500 | public function getTypeLabel() : string |
501 | 501 | { |
502 | - if(!isset(self::$typeLabels)) |
|
502 | + if (!isset(self::$typeLabels)) |
|
503 | 503 | { |
504 | 504 | self::$typeLabels = array( |
505 | 505 | self::TYPE_EMAIL => t('Email'), |
@@ -511,7 +511,7 @@ discard block |
||
511 | 511 | |
512 | 512 | $type = $this->getType(); |
513 | 513 | |
514 | - if(!isset(self::$typeLabels[$type])) |
|
514 | + if (!isset(self::$typeLabels[$type])) |
|
515 | 515 | { |
516 | 516 | throw new BaseException( |
517 | 517 | sprintf('Unknown URL type label for type [%s].', $type), |
@@ -531,7 +531,7 @@ discard block |
||
531 | 531 | * @param bool $highlight |
532 | 532 | * @return URLInfo |
533 | 533 | */ |
534 | - public function setHighlightExcluded(bool $highlight=true) : URLInfo |
|
534 | + public function setHighlightExcluded(bool $highlight = true) : URLInfo |
|
535 | 535 | { |
536 | 536 | $this->highlightExcluded = $highlight; |
537 | 537 | return $this; |
@@ -579,7 +579,7 @@ discard block |
||
579 | 579 | * @see URLInfo::isParamExclusionEnabled() |
580 | 580 | * @see URLInfo::setHighlightExcluded() |
581 | 581 | */ |
582 | - public function setParamExclusion(bool $enabled=true) : URLInfo |
|
582 | + public function setParamExclusion(bool $enabled = true) : URLInfo |
|
583 | 583 | { |
584 | 584 | $this->paramExclusion = $enabled; |
585 | 585 | return $this; |
@@ -605,13 +605,13 @@ discard block |
||
605 | 605 | */ |
606 | 606 | public function containsExcludedParams() : bool |
607 | 607 | { |
608 | - if(empty($this->excludedParams)) { |
|
608 | + if (empty($this->excludedParams)) { |
|
609 | 609 | return false; |
610 | 610 | } |
611 | 611 | |
612 | 612 | $names = array_keys($this->info['params']); |
613 | - foreach($names as $name) { |
|
614 | - if(isset($this->excludedParams[$name])) { |
|
613 | + foreach ($names as $name) { |
|
614 | + if (isset($this->excludedParams[$name])) { |
|
615 | 615 | return true; |
616 | 616 | } |
617 | 617 | } |
@@ -627,7 +627,7 @@ discard block |
||
627 | 627 | |
628 | 628 | public function offsetSet($offset, $value) |
629 | 629 | { |
630 | - if(in_array($offset, $this->infoKeys)) { |
|
630 | + if (in_array($offset, $this->infoKeys)) { |
|
631 | 631 | $this->info[$offset] = $value; |
632 | 632 | } |
633 | 633 | } |
@@ -644,11 +644,11 @@ discard block |
||
644 | 644 | |
645 | 645 | public function offsetGet($offset) |
646 | 646 | { |
647 | - if($offset === 'port') { |
|
647 | + if ($offset === 'port') { |
|
648 | 648 | return $this->getPort(); |
649 | 649 | } |
650 | 650 | |
651 | - if(in_array($offset, $this->infoKeys)) { |
|
651 | + if (in_array($offset, $this->infoKeys)) { |
|
652 | 652 | return $this->getInfoKey($offset); |
653 | 653 | } |
654 | 654 | |
@@ -680,12 +680,12 @@ discard block |
||
680 | 680 | * @return bool |
681 | 681 | * @throws BaseException |
682 | 682 | */ |
683 | - public function tryConnect(bool $verifySSL=true) : bool |
|
683 | + public function tryConnect(bool $verifySSL = true) : bool |
|
684 | 684 | { |
685 | 685 | requireCURL(); |
686 | 686 | |
687 | 687 | $ch = curl_init(); |
688 | - if(!is_resource($ch)) |
|
688 | + if (!is_resource($ch)) |
|
689 | 689 | { |
690 | 690 | throw new BaseException( |
691 | 691 | 'Could not initialize a new cURL instance.', |
@@ -701,13 +701,13 @@ discard block |
||
701 | 701 | curl_setopt($ch, CURLOPT_TIMEOUT, 10); |
702 | 702 | curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); |
703 | 703 | |
704 | - if(!$verifySSL) |
|
704 | + if (!$verifySSL) |
|
705 | 705 | { |
706 | 706 | curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); |
707 | 707 | curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); |
708 | 708 | } |
709 | 709 | |
710 | - if($this->hasUsername()) |
|
710 | + if ($this->hasUsername()) |
|
711 | 711 | { |
712 | 712 | curl_setopt($ch, CURLOPT_USERNAME, $this->getUsername()); |
713 | 713 | curl_setopt($ch, CURLOPT_PASSWORD, $this->getPassword()); |
@@ -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 | /** |
@@ -56,25 +56,25 @@ discard block |
||
56 | 56 | 'file' |
57 | 57 | ); |
58 | 58 | |
59 | - /** |
|
60 | - * Stores a list of all unicode characters in the URL |
|
61 | - * that have been filtered out before parsing it with |
|
62 | - * parse_url. |
|
63 | - * |
|
64 | - * @var string[]string |
|
65 | - */ |
|
59 | + /** |
|
60 | + * Stores a list of all unicode characters in the URL |
|
61 | + * that have been filtered out before parsing it with |
|
62 | + * parse_url. |
|
63 | + * |
|
64 | + * @var string[]string |
|
65 | + */ |
|
66 | 66 | protected $unicodeChars = array(); |
67 | 67 | |
68 | - /** |
|
69 | - * @var bool |
|
70 | - */ |
|
68 | + /** |
|
69 | + * @var bool |
|
70 | + */ |
|
71 | 71 | protected $encodeUTF = false; |
72 | 72 | |
73 | - /** |
|
74 | - * |
|
75 | - * @param string $url The target URL. |
|
76 | - * @param bool $encodeUTF Whether to URL encode any plain text unicode characters. |
|
77 | - */ |
|
73 | + /** |
|
74 | + * |
|
75 | + * @param string $url The target URL. |
|
76 | + * @param bool $encodeUTF Whether to URL encode any plain text unicode characters. |
|
77 | + */ |
|
78 | 78 | public function __construct(string $url, bool $encodeUTF) |
79 | 79 | { |
80 | 80 | $this->url = $url; |
@@ -87,12 +87,12 @@ discard block |
||
87 | 87 | } |
88 | 88 | } |
89 | 89 | |
90 | - /** |
|
91 | - * Retrieves the array as parsed by PHP's parse_url, |
|
92 | - * filtered and adjusted as necessary. |
|
93 | - * |
|
94 | - * @return array |
|
95 | - */ |
|
90 | + /** |
|
91 | + * Retrieves the array as parsed by PHP's parse_url, |
|
92 | + * filtered and adjusted as necessary. |
|
93 | + * |
|
94 | + * @return array |
|
95 | + */ |
|
96 | 96 | public function getInfo() : array |
97 | 97 | { |
98 | 98 | return $this->info; |
@@ -114,11 +114,11 @@ discard block |
||
114 | 114 | } |
115 | 115 | } |
116 | 116 | |
117 | - /** |
|
118 | - * Finds any non-url encoded unicode characters in |
|
119 | - * the URL, and encodes them before the URL is |
|
120 | - * passed to parse_url. |
|
121 | - */ |
|
117 | + /** |
|
118 | + * Finds any non-url encoded unicode characters in |
|
119 | + * the URL, and encodes them before the URL is |
|
120 | + * passed to parse_url. |
|
121 | + */ |
|
122 | 122 | protected function filterUnicodeChars() : void |
123 | 123 | { |
124 | 124 | $chars = \AppUtils\ConvertHelper::string2array($this->url); |
@@ -236,11 +236,11 @@ discard block |
||
236 | 236 | return false; |
237 | 237 | } |
238 | 238 | |
239 | - /** |
|
240 | - * Goes through all information in the parse_url result |
|
241 | - * array, and attempts to fix any user errors in formatting |
|
242 | - * that can be recovered from, mostly regarding stray spaces. |
|
243 | - */ |
|
239 | + /** |
|
240 | + * Goes through all information in the parse_url result |
|
241 | + * array, and attempts to fix any user errors in formatting |
|
242 | + * that can be recovered from, mostly regarding stray spaces. |
|
243 | + */ |
|
244 | 244 | protected function filterParsed() |
245 | 245 | { |
246 | 246 | $this->info['params'] = array(); |
@@ -269,13 +269,13 @@ discard block |
||
269 | 269 | } |
270 | 270 | } |
271 | 271 | |
272 | - /** |
|
273 | - * Recursively goes through the array, and converts all previously |
|
274 | - * URL encoded characters with their unicode character counterparts. |
|
275 | - * |
|
276 | - * @param array $subject |
|
277 | - * @return array |
|
278 | - */ |
|
272 | + /** |
|
273 | + * Recursively goes through the array, and converts all previously |
|
274 | + * URL encoded characters with their unicode character counterparts. |
|
275 | + * |
|
276 | + * @param array $subject |
|
277 | + * @return array |
|
278 | + */ |
|
279 | 279 | protected function restoreUnicodeChars(array $subject) : array |
280 | 280 | { |
281 | 281 | $result = array(); |
@@ -299,13 +299,13 @@ discard block |
||
299 | 299 | return $result; |
300 | 300 | } |
301 | 301 | |
302 | - /** |
|
303 | - * Replaces all URL encoded unicode characters |
|
304 | - * in the string with the unicode character. |
|
305 | - * |
|
306 | - * @param string $string |
|
307 | - * @return string |
|
308 | - */ |
|
302 | + /** |
|
303 | + * Replaces all URL encoded unicode characters |
|
304 | + * in the string with the unicode character. |
|
305 | + * |
|
306 | + * @param string $string |
|
307 | + * @return string |
|
308 | + */ |
|
309 | 309 | protected function restoreUnicodeChar(string $string) : string |
310 | 310 | { |
311 | 311 | if(strstr($string, '%')) |
@@ -363,21 +363,21 @@ discard block |
||
363 | 363 | ); |
364 | 364 | } |
365 | 365 | |
366 | - /** |
|
367 | - * Checks whether the URL that was parsed is valid. |
|
368 | - * @return bool |
|
369 | - */ |
|
366 | + /** |
|
367 | + * Checks whether the URL that was parsed is valid. |
|
368 | + * @return bool |
|
369 | + */ |
|
370 | 370 | public function isValid() : bool |
371 | 371 | { |
372 | 372 | return $this->isValid; |
373 | 373 | } |
374 | 374 | |
375 | - /** |
|
376 | - * If the validation failed, retrieves the validation |
|
377 | - * error message. |
|
378 | - * |
|
379 | - * @return string |
|
380 | - */ |
|
375 | + /** |
|
376 | + * If the validation failed, retrieves the validation |
|
377 | + * error message. |
|
378 | + * |
|
379 | + * @return string |
|
380 | + */ |
|
381 | 381 | public function getErrorMessage() : string |
382 | 382 | { |
383 | 383 | if(isset($this->error)) { |
@@ -387,12 +387,12 @@ discard block |
||
387 | 387 | return ''; |
388 | 388 | } |
389 | 389 | |
390 | - /** |
|
391 | - * If the validation failed, retrieves the validation |
|
392 | - * error code. |
|
393 | - * |
|
394 | - * @return int |
|
395 | - */ |
|
390 | + /** |
|
391 | + * If the validation failed, retrieves the validation |
|
392 | + * error code. |
|
393 | + * |
|
394 | + * @return int |
|
395 | + */ |
|
396 | 396 | public function getErrorCode() : int |
397 | 397 | { |
398 | 398 | if(isset($this->error)) { |
@@ -82,7 +82,7 @@ discard block |
||
82 | 82 | |
83 | 83 | $this->parse(); |
84 | 84 | |
85 | - if(!$this->detectType()) { |
|
85 | + if (!$this->detectType()) { |
|
86 | 86 | $this->validate(); |
87 | 87 | } |
88 | 88 | } |
@@ -108,7 +108,7 @@ discard block |
||
108 | 108 | |
109 | 109 | // if the URL contains any URL characters, and we |
110 | 110 | // do not want them URL encoded, restore them. |
111 | - if(!$this->encodeUTF && !empty($this->unicodeChars)) |
|
111 | + if (!$this->encodeUTF && !empty($this->unicodeChars)) |
|
112 | 112 | { |
113 | 113 | $this->info = $this->restoreUnicodeChars($this->info); |
114 | 114 | } |
@@ -125,13 +125,13 @@ discard block |
||
125 | 125 | |
126 | 126 | $keep = array(); |
127 | 127 | |
128 | - foreach($chars as $char) |
|
128 | + foreach ($chars as $char) |
|
129 | 129 | { |
130 | - if(preg_match('/\p{L}/usix', $char)) |
|
130 | + if (preg_match('/\p{L}/usix', $char)) |
|
131 | 131 | { |
132 | 132 | $encoded = rawurlencode($char); |
133 | 133 | |
134 | - if($encoded != $char) |
|
134 | + if ($encoded != $char) |
|
135 | 135 | { |
136 | 136 | $this->unicodeChars[$encoded] = $char; |
137 | 137 | $char = $encoded; |
@@ -152,11 +152,11 @@ discard block |
||
152 | 152 | 'phoneLink' |
153 | 153 | ); |
154 | 154 | |
155 | - foreach($types as $type) |
|
155 | + foreach ($types as $type) |
|
156 | 156 | { |
157 | 157 | $method = 'detectType_'.$type; |
158 | 158 | |
159 | - if($this->$method() === true) |
|
159 | + if ($this->$method() === true) |
|
160 | 160 | { |
161 | 161 | $this->isValid = true; |
162 | 162 | return true; |
@@ -174,11 +174,11 @@ discard block |
||
174 | 174 | 'hostIsPresent' |
175 | 175 | ); |
176 | 176 | |
177 | - foreach($validations as $validation) |
|
177 | + foreach ($validations as $validation) |
|
178 | 178 | { |
179 | 179 | $method = 'validate_'.$validation; |
180 | 180 | |
181 | - if($this->$method() !== true) { |
|
181 | + if ($this->$method() !== true) { |
|
182 | 182 | return; |
183 | 183 | } |
184 | 184 | } |
@@ -191,13 +191,13 @@ discard block |
||
191 | 191 | // every link needs a host. This case can happen for ex, if |
192 | 192 | // the link starts with a typo with only one slash, like: |
193 | 193 | // "http:/hostname" |
194 | - if(isset($this->info['host'])) { |
|
194 | + if (isset($this->info['host'])) { |
|
195 | 195 | return true; |
196 | 196 | } |
197 | 197 | |
198 | 198 | $this->setError( |
199 | 199 | URLInfo::ERROR_MISSING_HOST, |
200 | - t('Cannot determine the link\'s host name.') . ' ' . |
|
200 | + t('Cannot determine the link\'s host name.').' '. |
|
201 | 201 | t('This usually happens when there\'s a typo somewhere.') |
202 | 202 | ); |
203 | 203 | |
@@ -206,7 +206,7 @@ discard block |
||
206 | 206 | |
207 | 207 | protected function validate_schemeIsSet() : bool |
208 | 208 | { |
209 | - if(isset($this->info['scheme'])) { |
|
209 | + if (isset($this->info['scheme'])) { |
|
210 | 210 | return true; |
211 | 211 | } |
212 | 212 | |
@@ -223,13 +223,13 @@ discard block |
||
223 | 223 | |
224 | 224 | protected function validate_schemeIsKnown() : bool |
225 | 225 | { |
226 | - if(in_array($this->info['scheme'], $this->knownSchemes)) { |
|
226 | + if (in_array($this->info['scheme'], $this->knownSchemes)) { |
|
227 | 227 | return true; |
228 | 228 | } |
229 | 229 | |
230 | 230 | $this->setError( |
231 | 231 | URLInfo::ERROR_INVALID_SCHEME, |
232 | - t('The scheme %1$s is not supported for links.', $this->info['scheme']) . ' ' . |
|
232 | + t('The scheme %1$s is not supported for links.', $this->info['scheme']).' '. |
|
233 | 233 | t('Valid schemes are: %1$s.', implode(', ', $this->knownSchemes)) |
234 | 234 | ); |
235 | 235 | |
@@ -246,23 +246,23 @@ discard block |
||
246 | 246 | $this->info['params'] = array(); |
247 | 247 | $this->info['type'] = URLInfo::TYPE_URL; |
248 | 248 | |
249 | - if(isset($this->info['user'])) { |
|
249 | + if (isset($this->info['user'])) { |
|
250 | 250 | $this->info['user'] = urldecode($this->info['user']); |
251 | 251 | } |
252 | 252 | |
253 | - if(isset($this->info['pass'])) { |
|
253 | + if (isset($this->info['pass'])) { |
|
254 | 254 | $this->info['pass'] = urldecode($this->info['pass']); |
255 | 255 | } |
256 | 256 | |
257 | - if(isset($this->info['host'])) { |
|
257 | + if (isset($this->info['host'])) { |
|
258 | 258 | $this->info['host'] = str_replace(' ', '', $this->info['host']); |
259 | 259 | } |
260 | 260 | |
261 | - if(isset($this->info['path'])) { |
|
261 | + if (isset($this->info['path'])) { |
|
262 | 262 | $this->info['path'] = str_replace(' ', '', $this->info['path']); |
263 | 263 | } |
264 | 264 | |
265 | - if(isset($this->info['query']) && !empty($this->info['query'])) |
|
265 | + if (isset($this->info['query']) && !empty($this->info['query'])) |
|
266 | 266 | { |
267 | 267 | $this->info['params'] = \AppUtils\ConvertHelper::parseQueryString($this->info['query']); |
268 | 268 | ksort($this->info['params']); |
@@ -280,9 +280,9 @@ discard block |
||
280 | 280 | { |
281 | 281 | $result = array(); |
282 | 282 | |
283 | - foreach($subject as $key => $val) |
|
283 | + foreach ($subject as $key => $val) |
|
284 | 284 | { |
285 | - if(is_array($val)) |
|
285 | + if (is_array($val)) |
|
286 | 286 | { |
287 | 287 | $val = $this->restoreUnicodeChars($val); |
288 | 288 | } |
@@ -308,7 +308,7 @@ discard block |
||
308 | 308 | */ |
309 | 309 | protected function restoreUnicodeChar(string $string) : string |
310 | 310 | { |
311 | - if(strstr($string, '%')) |
|
311 | + if (strstr($string, '%')) |
|
312 | 312 | { |
313 | 313 | return str_replace(array_keys($this->unicodeChars), array_values($this->unicodeChars), $string); |
314 | 314 | } |
@@ -318,12 +318,12 @@ discard block |
||
318 | 318 | |
319 | 319 | protected function detectType_email() : bool |
320 | 320 | { |
321 | - if(isset($this->info['scheme']) && $this->info['scheme'] == 'mailto') { |
|
321 | + if (isset($this->info['scheme']) && $this->info['scheme'] == 'mailto') { |
|
322 | 322 | $this->info['type'] = URLInfo::TYPE_EMAIL; |
323 | 323 | return true; |
324 | 324 | } |
325 | 325 | |
326 | - if(isset($this->info['path']) && preg_match(\AppUtils\RegexHelper::REGEX_EMAIL, $this->info['path'])) |
|
326 | + if (isset($this->info['path']) && preg_match(\AppUtils\RegexHelper::REGEX_EMAIL, $this->info['path'])) |
|
327 | 327 | { |
328 | 328 | $this->info['scheme'] = 'mailto'; |
329 | 329 | $this->info['type'] = URLInfo::TYPE_EMAIL; |
@@ -335,7 +335,7 @@ discard block |
||
335 | 335 | |
336 | 336 | protected function detectType_fragmentLink() : bool |
337 | 337 | { |
338 | - if(isset($this->info['fragment']) && !isset($this->info['scheme'])) { |
|
338 | + if (isset($this->info['fragment']) && !isset($this->info['scheme'])) { |
|
339 | 339 | $this->info['type'] = URLInfo::TYPE_FRAGMENT; |
340 | 340 | return true; |
341 | 341 | } |
@@ -345,7 +345,7 @@ discard block |
||
345 | 345 | |
346 | 346 | protected function detectType_phoneLink() : bool |
347 | 347 | { |
348 | - if(isset($this->info['scheme']) && $this->info['scheme'] == 'tel') { |
|
348 | + if (isset($this->info['scheme']) && $this->info['scheme'] == 'tel') { |
|
349 | 349 | $this->info['type'] = URLInfo::TYPE_PHONE; |
350 | 350 | return true; |
351 | 351 | } |
@@ -380,7 +380,7 @@ discard block |
||
380 | 380 | */ |
381 | 381 | public function getErrorMessage() : string |
382 | 382 | { |
383 | - if(isset($this->error)) { |
|
383 | + if (isset($this->error)) { |
|
384 | 384 | return $this->error['message']; |
385 | 385 | } |
386 | 386 | |
@@ -395,7 +395,7 @@ discard block |
||
395 | 395 | */ |
396 | 396 | public function getErrorCode() : int |
397 | 397 | { |
398 | - if(isset($this->error)) { |
|
398 | + if (isset($this->error)) { |
|
399 | 399 | return $this->error['code']; |
400 | 400 | } |
401 | 401 |
@@ -285,8 +285,7 @@ |
||
285 | 285 | if(is_array($val)) |
286 | 286 | { |
287 | 287 | $val = $this->restoreUnicodeChars($val); |
288 | - } |
|
289 | - else |
|
288 | + } else |
|
290 | 289 | { |
291 | 290 | $val = $this->restoreUnicodeChar($val); |
292 | 291 | } |