Passed
Push — master ( 34b9bf...f51ce1 )
by Sebastian
03:34 queued 13s
created
src/URLInfo.php 1 patch
Indentation   +199 added lines, -199 removed lines patch added patch discarded remove patch
@@ -34,42 +34,42 @@  discard block
 block discarded – undo
34 34
     const TYPE_PHONE = 'phone';
35 35
     const TYPE_URL = 'url';
36 36
     
37
-   /**
38
-    * The original URL that was passed to the constructor.
39
-    * @var string
40
-    */
37
+    /**
38
+     * The original URL that was passed to the constructor.
39
+     * @var string
40
+     */
41 41
     protected $rawURL;
42 42
 
43
-   /**
44
-    * @var array
45
-    */
43
+    /**
44
+     * @var array
45
+     */
46 46
     protected $info;
47 47
     
48
-   /**
49
-    * @var string[]
50
-    */
48
+    /**
49
+     * @var string[]
50
+     */
51 51
     protected $excludedParams = array();
52 52
     
53
-   /**
54
-    * @var bool
55
-    * @see URLInfo::setParamExclusion()
56
-    */
53
+    /**
54
+     * @var bool
55
+     * @see URLInfo::setParamExclusion()
56
+     */
57 57
     protected $paramExclusion = false;
58 58
     
59
-   /**
60
-    * @var array
61
-    * @see URLInfo::getTypeLabel()
62
-    */
59
+    /**
60
+     * @var array
61
+     * @see URLInfo::getTypeLabel()
62
+     */
63 63
     protected static $typeLabels;
64 64
     
65
-   /**
66
-    * @var bool
67
-    */
65
+    /**
66
+     * @var bool
67
+     */
68 68
     protected $highlightExcluded = false;
69 69
     
70
-   /**
71
-    * @var array
72
-    */
70
+    /**
71
+     * @var array
72
+     */
73 73
     protected $infoKeys = array(
74 74
         'scheme',
75 75
         'host',
@@ -81,24 +81,24 @@  discard block
 block discarded – undo
81 81
         'fragment'
82 82
     );
83 83
     
84
-   /**
85
-    * @var string
86
-    */
84
+    /**
85
+     * @var string
86
+     */
87 87
     protected $url;
88 88
     
89
-   /**
90
-    * @var URLInfo_Parser
91
-    */
89
+    /**
90
+     * @var URLInfo_Parser
91
+     */
92 92
     protected $parser;
93 93
     
94
-   /**
95
-    * @var URLInfo_Normalizer
96
-    */
94
+    /**
95
+     * @var URLInfo_Normalizer
96
+     */
97 97
     protected $normalizer;
98 98
     
99
-   /**
100
-    * @var bool
101
-    */
99
+    /**
100
+     * @var bool
101
+     */
102 102
     protected $encodeUTFChars = false;
103 103
     
104 104
     public function __construct(string $url)
@@ -115,14 +115,14 @@  discard block
 block discarded – undo
115 115
         $this->info = $this->parser->getInfo();
116 116
     }
117 117
     
118
-   /**
119
-    * Whether to URL encode any non-encoded UTF8 characters in the URL.
120
-    * Default is to leave them as-is for better readability, since 
121
-    * browsers handle this well.
122
-    * 
123
-    * @param bool $enabled
124
-    * @return URLInfo
125
-    */
118
+    /**
119
+     * Whether to URL encode any non-encoded UTF8 characters in the URL.
120
+     * Default is to leave them as-is for better readability, since 
121
+     * browsers handle this well.
122
+     * 
123
+     * @param bool $enabled
124
+     * @return URLInfo
125
+     */
126 126
     public function setUTFEncoding(bool $enabled=true) : URLInfo
127 127
     {
128 128
         if($this->encodeUTFChars !== $enabled)
@@ -139,13 +139,13 @@  discard block
 block discarded – undo
139 139
         return $this->encodeUTFChars;
140 140
     }
141 141
     
142
-   /**
143
-    * Filters an URL: removes control characters and the
144
-    * like to have a clean URL to work with.
145
-    * 
146
-    * @param string $url
147
-    * @return string
148
-    */
142
+    /**
143
+     * Filters an URL: removes control characters and the
144
+     * like to have a clean URL to work with.
145
+     * 
146
+     * @param string $url
147
+     * @return string
148
+     */
149 149
     public static function filterURL(string $url)
150 150
     {
151 151
         return URLInfo_Filter::filter($url);
@@ -175,12 +175,12 @@  discard block
 block discarded – undo
175 175
         return $this->info['type'] === self::TYPE_PHONE;
176 176
     }
177 177
     
178
-   /**
179
-    * Whether the URL is a regular URL, not one of the 
180
-    * other types like a phone number or email address.
181
-    * 
182
-    * @return bool
183
-    */
178
+    /**
179
+     * Whether the URL is a regular URL, not one of the 
180
+     * other types like a phone number or email address.
181
+     * 
182
+     * @return bool
183
+     */
184 184
     public function isURL() : bool
185 185
     {
186 186
         $host = $this->getHost();
@@ -192,20 +192,20 @@  discard block
 block discarded – undo
192 192
         return $this->parser->isValid();
193 193
     }
194 194
     
195
-   /**
196
-    * Retrieves the host name, or an empty string if none is present.
197
-    * 
198
-    * @return string
199
-    */
195
+    /**
196
+     * Retrieves the host name, or an empty string if none is present.
197
+     * 
198
+     * @return string
199
+     */
200 200
     public function getHost() : string
201 201
     {
202 202
         return $this->getInfoKey('host');
203 203
     }
204 204
     
205
-   /**
206
-    * Retrieves the path, or an empty string if none is present.
207
-    * @return string
208
-    */
205
+    /**
206
+     * Retrieves the path, or an empty string if none is present.
207
+     * @return string
208
+     */
209 209
     public function getPath() : string
210 210
     {
211 211
         return $this->getInfoKey('path');
@@ -221,10 +221,10 @@  discard block
 block discarded – undo
221 221
         return $this->getInfoKey('scheme');
222 222
     }
223 223
     
224
-   /**
225
-    * Retrieves the port specified in the URL, or -1 if none is preseent.
226
-    * @return int
227
-    */
224
+    /**
225
+     * Retrieves the port specified in the URL, or -1 if none is preseent.
226
+     * @return int
227
+     */
228 228
     public function getPort() : int
229 229
     {
230 230
         $port = $this->getInfoKey('port');
@@ -236,13 +236,13 @@  discard block
 block discarded – undo
236 236
         return -1;
237 237
     }
238 238
     
239
-   /**
240
-    * Retrieves the raw query string, or an empty string if none is present.
241
-    * 
242
-    * @return string
243
-    * 
244
-    * @see URLInfo::getParams()
245
-    */
239
+    /**
240
+     * Retrieves the raw query string, or an empty string if none is present.
241
+     * 
242
+     * @return string
243
+     * 
244
+     * @see URLInfo::getParams()
245
+     */
246 246
     public function getQuery() : string
247 247
     {
248 248
         return $this->getInfoKey('query');
@@ -258,20 +258,20 @@  discard block
 block discarded – undo
258 258
         return $this->getInfoKey('pass');
259 259
     }
260 260
     
261
-   /**
262
-    * Whether the URL contains a port number.
263
-    * @return bool
264
-    */
261
+    /**
262
+     * Whether the URL contains a port number.
263
+     * @return bool
264
+     */
265 265
     public function hasPort() : bool
266 266
     {
267 267
         return $this->getPort() !== -1;
268 268
     }
269 269
     
270
-   /**
271
-    * Alias for the hasParams() method.
272
-    * @return bool
273
-    * @see URLInfo::hasParams()
274
-    */
270
+    /**
271
+     * Alias for the hasParams() method.
272
+     * @return bool
273
+     * @see URLInfo::hasParams()
274
+     */
275 275
     public function hasQuery() : bool
276 276
     {
277 277
         return $this->hasParams();
@@ -316,23 +316,23 @@  discard block
 block discarded – undo
316 316
         return '';
317 317
     }
318 318
 
319
-   /**
320
-    * Retrieves a normalized URL: this ensures that all parameters
321
-    * in the URL are always in the same order.
322
-    * 
323
-    * @return string
324
-    */
319
+    /**
320
+     * Retrieves a normalized URL: this ensures that all parameters
321
+     * in the URL are always in the same order.
322
+     * 
323
+     * @return string
324
+     */
325 325
     public function getNormalized() : string
326 326
     {
327 327
         return $this->normalize(true);
328 328
     }
329 329
     
330
-   /**
331
-    * Like getNormalized(), but if a username and password are present
332
-    * in the URL, returns the URL without them.
333
-    * 
334
-    * @return string
335
-    */
330
+    /**
331
+     * Like getNormalized(), but if a username and password are present
332
+     * in the URL, returns the URL without them.
333
+     * 
334
+     * @return string
335
+     */
336 336
     public function getNormalizedWithoutAuth() : string
337 337
     {
338 338
         return $this->normalize(false);
@@ -353,25 +353,25 @@  discard block
 block discarded – undo
353 353
         return $this->normalizer->normalize();
354 354
     }
355 355
     
356
-   /**
357
-    * Creates a hash of the URL, which can be used for comparisons.
358
-    * Since any parameters in the URL's query are sorted alphabetically,
359
-    * the same links with a different parameter order will have the 
360
-    * same hash.
361
-    * 
362
-    * @return string
363
-    */
356
+    /**
357
+     * Creates a hash of the URL, which can be used for comparisons.
358
+     * Since any parameters in the URL's query are sorted alphabetically,
359
+     * the same links with a different parameter order will have the 
360
+     * same hash.
361
+     * 
362
+     * @return string
363
+     */
364 364
     public function getHash()
365 365
     {
366 366
         return \AppUtils\ConvertHelper::string2shortHash($this->getNormalized());
367 367
     }
368 368
 
369
-   /**
370
-    * Highlights the URL using HTML tags with specific highlighting
371
-    * class names.
372
-    * 
373
-    * @return string Will return an empty string if the URL is not valid.
374
-    */
369
+    /**
370
+     * Highlights the URL using HTML tags with specific highlighting
371
+     * class names.
372
+     * 
373
+     * @return string Will return an empty string if the URL is not valid.
374
+     */
375 375
     public function getHighlighted() : string
376 376
     {
377 377
         if(!$this->isValid()) {
@@ -405,15 +405,15 @@  discard block
 block discarded – undo
405 405
         return count($params);
406 406
     }
407 407
     
408
-   /**
409
-    * Retrieves all parameters specified in the url,
410
-    * if any, as an associative array. 
411
-    * 
412
-    * NOTE: Ignores parameters that have been added
413
-    * to the excluded parameters list.
414
-    *
415
-    * @return array
416
-    */
408
+    /**
409
+     * Retrieves all parameters specified in the url,
410
+     * if any, as an associative array. 
411
+     * 
412
+     * NOTE: Ignores parameters that have been added
413
+     * to the excluded parameters list.
414
+     *
415
+     * @return array
416
+     */
417 417
     public function getParams() : array
418 418
     {
419 419
         if(!$this->paramExclusion || empty($this->excludedParams)) {
@@ -431,22 +431,22 @@  discard block
 block discarded – undo
431 431
         return $keep;
432 432
     }
433 433
     
434
-   /**
435
-    * Retrieves the names of all parameters present in the URL, if any.
436
-    * @return string[]
437
-    */
434
+    /**
435
+     * Retrieves the names of all parameters present in the URL, if any.
436
+     * @return string[]
437
+     */
438 438
     public function getParamNames() : array
439 439
     {
440 440
         $params = $this->getParams();
441 441
         return array_keys($params);
442 442
     }
443 443
     
444
-   /**
445
-    * Retrieves a specific parameter value from the URL.
446
-    * 
447
-    * @param string $name
448
-    * @return string The parameter value, or an empty string if it does not exist.
449
-    */
444
+    /**
445
+     * Retrieves a specific parameter value from the URL.
446
+     * 
447
+     * @param string $name
448
+     * @return string The parameter value, or an empty string if it does not exist.
449
+     */
450 450
     public function getParam(string $name) : string
451 451
     {
452 452
         if(isset($this->info['params'][$name])) {
@@ -456,16 +456,16 @@  discard block
 block discarded – undo
456 456
         return '';
457 457
     }
458 458
     
459
-   /**
460
-    * Excludes an URL parameter entirely if present:
461
-    * the parser will act as if the parameter was not
462
-    * even present in the source URL, effectively
463
-    * stripping it.
464
-    *
465
-    * @param string $name
466
-    * @param string $reason A human readable explanation why this is excluded - used when highlighting links.
467
-    * @return URLInfo
468
-    */
459
+    /**
460
+     * Excludes an URL parameter entirely if present:
461
+     * the parser will act as if the parameter was not
462
+     * even present in the source URL, effectively
463
+     * stripping it.
464
+     *
465
+     * @param string $name
466
+     * @param string $reason A human readable explanation why this is excluded - used when highlighting links.
467
+     * @return URLInfo
468
+     */
469 469
     public function excludeParam(string $name, string $reason='') : URLInfo
470 470
     {
471 471
         if(!isset($this->excludedParams[$name]))
@@ -518,25 +518,25 @@  discard block
 block discarded – undo
518 518
         return self::$typeLabels[$this->getType()];
519 519
     }
520 520
 
521
-   /**
522
-    * Whether excluded parameters should be highlighted in
523
-    * a different color in the URL when using the
524
-    * {@link URLInfo::getHighlighted()} method.
525
-    *
526
-    * @param bool $highlight
527
-    * @return URLInfo
528
-    */
521
+    /**
522
+     * Whether excluded parameters should be highlighted in
523
+     * a different color in the URL when using the
524
+     * {@link URLInfo::getHighlighted()} method.
525
+     *
526
+     * @param bool $highlight
527
+     * @return URLInfo
528
+     */
529 529
     public function setHighlightExcluded(bool $highlight=true) : URLInfo
530 530
     {
531 531
         $this->highlightExcluded = $highlight;
532 532
         return $this;
533 533
     }
534 534
     
535
-   /**
536
-    * Returns an array with all relevant URL information.
537
-    * 
538
-    * @return array
539
-    */
535
+    /**
536
+     * Returns an array with all relevant URL information.
537
+     * 
538
+     * @return array
539
+     */
540 540
     public function toArray() : array
541 541
     {
542 542
         return array(
@@ -580,24 +580,24 @@  discard block
 block discarded – undo
580 580
         return $this;
581 581
     }
582 582
     
583
-   /**
584
-    * Whether the parameter exclusion mode is enabled:
585
-    * In this case, if any parameters have been added to the
586
-    * exclusion list, all relevant methods will exclude these.
587
-    *
588
-    * @return bool
589
-    */
583
+    /**
584
+     * Whether the parameter exclusion mode is enabled:
585
+     * In this case, if any parameters have been added to the
586
+     * exclusion list, all relevant methods will exclude these.
587
+     *
588
+     * @return bool
589
+     */
590 590
     public function isParamExclusionEnabled() : bool
591 591
     {
592 592
         return $this->paramExclusion;
593 593
     }
594 594
     
595
-   /**
596
-    * Checks whether the link contains any parameters that
597
-    * are on the list of excluded parameters.
598
-    *
599
-    * @return bool
600
-    */
595
+    /**
596
+     * Checks whether the link contains any parameters that
597
+     * are on the list of excluded parameters.
598
+     *
599
+     * @return bool
600
+     */
601 601
     public function containsExcludedParams() : bool
602 602
     {
603 603
         if(empty($this->excludedParams)) {
@@ -665,16 +665,16 @@  discard block
 block discarded – undo
665 665
         return $this->highlightExcluded;
666 666
     }
667 667
     
668
-   /**
669
-    * Checks if the URL exists, i.e. can be connected to. Will return
670
-    * true if the returned HTTP status code is `200` or `302`.
671
-    * 
672
-    * NOTE: If the target URL requires HTTP authentication, the username
673
-    * and password should be integrated into the URL.
674
-    * 
675
-    * @return bool
676
-    * @throws BaseException
677
-    */
668
+    /**
669
+     * Checks if the URL exists, i.e. can be connected to. Will return
670
+     * true if the returned HTTP status code is `200` or `302`.
671
+     * 
672
+     * NOTE: If the target URL requires HTTP authentication, the username
673
+     * and password should be integrated into the URL.
674
+     * 
675
+     * @return bool
676
+     * @throws BaseException
677
+     */
678 678
     public function tryConnect(bool $verifySSL=true) : bool
679 679
     {
680 680
         return $this->createConnectionTester()
@@ -682,26 +682,26 @@  discard block
 block discarded – undo
682 682
         ->canConnect();
683 683
     }
684 684
     
685
-   /**
686
-    * Creates the connection tester instance that is used
687
-    * to check if a URL can be connected to, and which is
688
-    * used in the {@see URLInfo::tryConnect()} method. It
689
-    * allows more settings to be used.
690
-    * 
691
-    * @return URLInfo_ConnectionTester
692
-    */
685
+    /**
686
+     * Creates the connection tester instance that is used
687
+     * to check if a URL can be connected to, and which is
688
+     * used in the {@see URLInfo::tryConnect()} method. It
689
+     * allows more settings to be used.
690
+     * 
691
+     * @return URLInfo_ConnectionTester
692
+     */
693 693
     public function createConnectionTester() : URLInfo_ConnectionTester
694 694
     {
695 695
         return new URLInfo_ConnectionTester($this);
696 696
     }
697 697
     
698
-   /**
699
-    * Adds/overwrites an URL parameter.
700
-    *  
701
-    * @param string $name
702
-    * @param string $val
703
-    * @return URLInfo
704
-    */
698
+    /**
699
+     * Adds/overwrites an URL parameter.
700
+     *  
701
+     * @param string $name
702
+     * @param string $val
703
+     * @return URLInfo
704
+     */
705 705
     public function setParam(string $name, string $val) : URLInfo
706 706
     {
707 707
         $this->info['params'][$name] = $val;
@@ -709,13 +709,13 @@  discard block
 block discarded – undo
709 709
         return $this;
710 710
     }
711 711
     
712
-   /**
713
-    * Removes an URL parameter. Has no effect if the 
714
-    * parameter is not present to begin with.
715
-    * 
716
-    * @param string $param
717
-    * @return URLInfo
718
-    */
712
+    /**
713
+     * Removes an URL parameter. Has no effect if the 
714
+     * parameter is not present to begin with.
715
+     * 
716
+     * @param string $param
717
+     * @return URLInfo
718
+     */
719 719
     public function removeParam(string $param) : URLInfo
720 720
     {
721 721
         if(isset($this->info['params'][$param]))
Please login to merge, or discard this patch.