Passed
Push — master ( 43d553...f25e71 )
by Sebastian
02:52
created
src/ConvertHelper.php 1 patch
Indentation   +468 added lines, -468 removed lines patch added patch discarded remove patch
@@ -58,13 +58,13 @@  discard block
 block discarded – undo
58 58
         return str_replace("\t", str_repeat(' ', $tabSize), $string);
59 59
     }
60 60
     
61
-   /**
62
-    * Converts spaces to tabs in the specified string.
63
-    * 
64
-    * @param string $string
65
-    * @param int $tabSize The amount of spaces per tab in the source string.
66
-    * @return string
67
-    */
61
+    /**
62
+     * Converts spaces to tabs in the specified string.
63
+     * 
64
+     * @param string $string
65
+     * @param int $tabSize The amount of spaces per tab in the source string.
66
+     * @return string
67
+     */
68 68
     public static function spaces2tabs(string $string, int $tabSize=4) : string
69 69
     {
70 70
         return str_replace(str_repeat(' ', $tabSize), "\t", $string);
@@ -77,14 +77,14 @@  discard block
 block discarded – undo
77 77
         return $converter->convert($string);
78 78
     }
79 79
     
80
-   /**
81
-    * Converts the specified amount of seconds into
82
-    * a human readable string split in months, weeks,
83
-    * days, hours, minutes and seconds.
84
-    *
85
-    * @param float $seconds
86
-    * @return string
87
-    */
80
+    /**
81
+     * Converts the specified amount of seconds into
82
+     * a human readable string split in months, weeks,
83
+     * days, hours, minutes and seconds.
84
+     *
85
+     * @param float $seconds
86
+     * @return string
87
+     */
88 88
     public static function time2string($seconds)
89 89
     {
90 90
         static $units = null;
@@ -156,41 +156,41 @@  discard block
 block discarded – undo
156 156
         return implode(', ', $tokens) . ' ' . t('and') . ' ' . $last;
157 157
     }
158 158
 
159
-   /**
160
-    * Converts a timestamp into an easily understandable
161
-    * format, e.g. "2 hours", "1 day", "3 months"
162
-    *
163
-    * If you set the date to parameter, the difference
164
-    * will be calculated between the two dates and not
165
-    * the current time.
166
-    *
167
-    * @param integer|\DateTime $datefrom
168
-    * @param integer|\DateTime $dateto
169
-    * @return string
170
-    */
159
+    /**
160
+     * Converts a timestamp into an easily understandable
161
+     * format, e.g. "2 hours", "1 day", "3 months"
162
+     *
163
+     * If you set the date to parameter, the difference
164
+     * will be calculated between the two dates and not
165
+     * the current time.
166
+     *
167
+     * @param integer|\DateTime $datefrom
168
+     * @param integer|\DateTime $dateto
169
+     * @return string
170
+     */
171 171
     public static function duration2string($datefrom, $dateto = -1) : string
172 172
     {
173
-         $converter = new ConvertHelper_DurationConverter();
173
+            $converter = new ConvertHelper_DurationConverter();
174 174
          
175
-         if($datefrom instanceof \DateTime)
176
-         {
177
-             $converter->setDateFrom($datefrom);
178
-         }
179
-         else
180
-         {
181
-             $converter->setDateFrom(self::timestamp2date($datefrom)); 
182
-         }
175
+            if($datefrom instanceof \DateTime)
176
+            {
177
+                $converter->setDateFrom($datefrom);
178
+            }
179
+            else
180
+            {
181
+                $converter->setDateFrom(self::timestamp2date($datefrom)); 
182
+            }
183 183
 
184
-         if($dateto instanceof \DateTime)
185
-         {
186
-             $converter->setDateTo($dateto);
187
-         }
188
-         else if($dateto > 0)
189
-         {
190
-             $converter->setDateTo(self::timestamp2date($dateto));
191
-         }
184
+            if($dateto instanceof \DateTime)
185
+            {
186
+                $converter->setDateTo($dateto);
187
+            }
188
+            else if($dateto > 0)
189
+            {
190
+                $converter->setDateTo(self::timestamp2date($dateto));
191
+            }
192 192
 
193
-         return $converter->convert();
193
+            return $converter->convert();
194 194
     }
195 195
 
196 196
     /**
@@ -229,44 +229,44 @@  discard block
 block discarded – undo
229 229
         return $geshi->parse_code();
230 230
     }
231 231
     
232
-   /**
233
-    * Converts a number of bytes to a human readable form,
234
-    * e.g. xx Kb / xx Mb / xx Gb
235
-    *
236
-    * @param int $bytes The amount of bytes to convert.
237
-    * @param int $precision The amount of decimals
238
-    * @param int $base The base to calculate with: Base 10 is default (=1000 Bytes in a KB), Base 2 is mainly used for Windows memory (=1024 Bytes in a KB).
239
-    * @return string
240
-    * 
241
-    * @see https://en.m.wikipedia.org/wiki/Megabyte#Definitions
242
-    */
232
+    /**
233
+     * Converts a number of bytes to a human readable form,
234
+     * e.g. xx Kb / xx Mb / xx Gb
235
+     *
236
+     * @param int $bytes The amount of bytes to convert.
237
+     * @param int $precision The amount of decimals
238
+     * @param int $base The base to calculate with: Base 10 is default (=1000 Bytes in a KB), Base 2 is mainly used for Windows memory (=1024 Bytes in a KB).
239
+     * @return string
240
+     * 
241
+     * @see https://en.m.wikipedia.org/wiki/Megabyte#Definitions
242
+     */
243 243
     public static function bytes2readable(int $bytes, int $precision = 1, int $base = ConvertHelper_StorageSizeEnum::BASE_10) : string
244 244
     {
245 245
         return self::parseBytes($bytes)->toString($precision, $base);
246 246
     }
247 247
     
248
-   /**
249
-    * Parses a number of bytes, and creates a converter instance which
250
-    * allows doing common operations with it.
251
-    * 
252
-    * @param int $bytes
253
-    * @return ConvertHelper_ByteConverter
254
-    */
248
+    /**
249
+     * Parses a number of bytes, and creates a converter instance which
250
+     * allows doing common operations with it.
251
+     * 
252
+     * @param int $bytes
253
+     * @return ConvertHelper_ByteConverter
254
+     */
255 255
     public static function parseBytes(int $bytes) : ConvertHelper_ByteConverter
256 256
     {
257 257
         return new ConvertHelper_ByteConverter($bytes);
258 258
     }
259 259
 
260
-   /**
261
-    * Cuts a text to the specified length if it is longer than the
262
-    * target length. Appends a text to signify it has been cut at 
263
-    * the end of the string.
264
-    * 
265
-    * @param string $text
266
-    * @param int $targetLength
267
-    * @param string $append
268
-    * @return string
269
-    */
260
+    /**
261
+     * Cuts a text to the specified length if it is longer than the
262
+     * target length. Appends a text to signify it has been cut at 
263
+     * the end of the string.
264
+     * 
265
+     * @param string $text
266
+     * @param int $targetLength
267
+     * @param string $append
268
+     * @return string
269
+     */
270 270
     public static function text_cut(string $text, int $targetLength, string $append = '...') : string
271 271
     {
272 272
         $length = mb_strlen($text);
@@ -290,14 +290,14 @@  discard block
 block discarded – undo
290 290
         return $info->toString();
291 291
     }
292 292
     
293
-   /**
294
-    * Pretty print_r.
295
-    * 
296
-    * @param mixed $var The variable to dump.
297
-    * @param bool $return Whether to return the dumped code.
298
-    * @param bool $html Whether to style the dump as HTML.
299
-    * @return string
300
-    */
293
+    /**
294
+     * Pretty print_r.
295
+     * 
296
+     * @param mixed $var The variable to dump.
297
+     * @param bool $return Whether to return the dumped code.
298
+     * @param bool $html Whether to style the dump as HTML.
299
+     * @return string
300
+     */
301 301
     public static function print_r($var, bool $return=false, bool $html=true) : string
302 302
     {
303 303
         $result = parseVariable($var)->enableType()->toString();
@@ -327,15 +327,15 @@  discard block
 block discarded – undo
327 327
         'no' => false
328 328
     );
329 329
 
330
-   /**
331
-    * Converts a string, number or boolean value to a boolean value.
332
-    * 
333
-    * @param mixed $string
334
-    * @throws ConvertHelper_Exception
335
-    * @return bool
336
-    * 
337
-    * @see ConvertHelper::ERROR_INVALID_BOOLEAN_STRING
338
-    */
330
+    /**
331
+     * Converts a string, number or boolean value to a boolean value.
332
+     * 
333
+     * @param mixed $string
334
+     * @throws ConvertHelper_Exception
335
+     * @return bool
336
+     * 
337
+     * @see ConvertHelper::ERROR_INVALID_BOOLEAN_STRING
338
+     */
339 339
     public static function string2bool($string) : bool
340 340
     {
341 341
         if($string === '' || $string === null || !is_scalar($string)) 
@@ -363,27 +363,27 @@  discard block
 block discarded – undo
363 363
         );
364 364
     }
365 365
     
366
-   /**
367
-    * Whether the specified string is a boolean string or boolean value.
368
-    * Alias for {@link ConvertHelper::isBoolean()}.
369
-    * 
370
-    * @param mixed $string
371
-    * @return bool
372
-    * @deprecated
373
-    * @see ConvertHelper::isBoolean()
374
-    */
366
+    /**
367
+     * Whether the specified string is a boolean string or boolean value.
368
+     * Alias for {@link ConvertHelper::isBoolean()}.
369
+     * 
370
+     * @param mixed $string
371
+     * @return bool
372
+     * @deprecated
373
+     * @see ConvertHelper::isBoolean()
374
+     */
375 375
     public static function isBooleanString($string) : bool
376 376
     {
377 377
         return self::isBoolean($string);
378 378
     }
379 379
 
380
-   /**
381
-    * Alias for the {@\AppUtils\XMLHelper::string2xml()} method.
382
-    * 
383
-    * @param string $text
384
-    * @return string
385
-    * @deprecated
386
-    */
380
+    /**
381
+     * Alias for the {@\AppUtils\XMLHelper::string2xml()} method.
382
+     * 
383
+     * @param string $text
384
+     * @return string
385
+     * @deprecated
386
+     */
387 387
     public static function text_makeXMLCompliant($text)
388 388
     {
389 389
         return XMLHelper::string2xml($text);
@@ -485,13 +485,13 @@  discard block
 block discarded – undo
485 485
         return $translit->convert($string);
486 486
     }
487 487
     
488
-   /**
489
-    * Retrieves the HEX character codes for all control
490
-    * characters that the {@link stripControlCharacters()} 
491
-    * method will remove.
492
-    * 
493
-    * @return string[]
494
-    */
488
+    /**
489
+     * Retrieves the HEX character codes for all control
490
+     * characters that the {@link stripControlCharacters()} 
491
+     * method will remove.
492
+     * 
493
+     * @return string[]
494
+     */
495 495
     public static function getControlCharactersAsHex()
496 496
     {
497 497
         $hexAlphabet = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');
@@ -527,13 +527,13 @@  discard block
 block discarded – undo
527 527
         return $stack;
528 528
     }
529 529
     
530
-   /**
531
-    * Retrieves an array of all control characters that
532
-    * the {@link stripControlCharacters()} method will 
533
-    * remove, as the actual UTF-8 characters.
534
-    * 
535
-    * @return string[]
536
-    */
530
+    /**
531
+     * Retrieves an array of all control characters that
532
+     * the {@link stripControlCharacters()} method will 
533
+     * remove, as the actual UTF-8 characters.
534
+     * 
535
+     * @return string[]
536
+     */
537 537
     public static function getControlCharactersAsUTF8()
538 538
     {
539 539
         $chars = self::getControlCharactersAsHex();
@@ -546,12 +546,12 @@  discard block
 block discarded – undo
546 546
         return $result;
547 547
     }
548 548
     
549
-   /**
550
-    * Retrieves all control characters as JSON encoded
551
-    * characters, e.g. "\u200b".
552
-    * 
553
-    * @return string[]
554
-    */
549
+    /**
550
+     * Retrieves all control characters as JSON encoded
551
+     * characters, e.g. "\u200b".
552
+     * 
553
+     * @return string[]
554
+     */
555 555
     public static function getControlCharactersAsJSON()
556 556
     {
557 557
         $chars = self::getControlCharactersAsHex();
@@ -608,20 +608,20 @@  discard block
 block discarded – undo
608 608
         return preg_replace(self::$controlCharsRegex, '', $string);
609 609
     }
610 610
 
611
-   /**
612
-    * Converts a unicode character to the PHPO notation.
613
-    * 
614
-    * Example:
615
-    * 
616
-    * <pre>unicodeChar2php('"\u0000"')</pre>
617
-    * 
618
-    * Returns
619
-    * 
620
-    * <pre>\x0</pre>
621
-    * 
622
-    * @param string $unicodeChar
623
-    * @return string
624
-    */
611
+    /**
612
+     * Converts a unicode character to the PHPO notation.
613
+     * 
614
+     * Example:
615
+     * 
616
+     * <pre>unicodeChar2php('"\u0000"')</pre>
617
+     * 
618
+     * Returns
619
+     * 
620
+     * <pre>\x0</pre>
621
+     * 
622
+     * @param string $unicodeChar
623
+     * @return string
624
+     */
625 625
     public static function unicodeChar2php(string $unicodeChar) : string 
626 626
     {
627 627
         $unicodeChar = json_decode($unicodeChar);
@@ -747,25 +747,25 @@  discard block
 block discarded – undo
747 747
         return 'false';
748 748
     }
749 749
     
750
-   /**
751
-    * Converts an associative array with attribute name > value pairs
752
-    * to an attribute string that can be used in an HTML tag. Empty 
753
-    * attribute values are ignored.
754
-    * 
755
-    * Example:
756
-    * 
757
-    * array2attributeString(array(
758
-    *     'id' => 45,
759
-    *     'href' => 'http://www.mistralys.com'
760
-    * ));
761
-    * 
762
-    * Result:
763
-    * 
764
-    * id="45" href="http://www.mistralys.com"
765
-    * 
766
-    * @param array $array
767
-    * @return string
768
-    */
750
+    /**
751
+     * Converts an associative array with attribute name > value pairs
752
+     * to an attribute string that can be used in an HTML tag. Empty 
753
+     * attribute values are ignored.
754
+     * 
755
+     * Example:
756
+     * 
757
+     * array2attributeString(array(
758
+     *     'id' => 45,
759
+     *     'href' => 'http://www.mistralys.com'
760
+     * ));
761
+     * 
762
+     * Result:
763
+     * 
764
+     * id="45" href="http://www.mistralys.com"
765
+     * 
766
+     * @param array $array
767
+     * @return string
768
+     */
769 769
     public static function array2attributeString($array)
770 770
     {
771 771
         $tokens = array();
@@ -784,14 +784,14 @@  discard block
 block discarded – undo
784 784
         return ' '.implode(' ', $tokens);
785 785
     }
786 786
     
787
-   /**
788
-    * Converts a string so it can safely be used in a javascript
789
-    * statement in an HTML tag: uses single quotes around the string
790
-    * and encodes all special characters as needed.
791
-    * 
792
-    * @param string $string
793
-    * @return string
794
-    */
787
+    /**
788
+     * Converts a string so it can safely be used in a javascript
789
+     * statement in an HTML tag: uses single quotes around the string
790
+     * and encodes all special characters as needed.
791
+     * 
792
+     * @param string $string
793
+     * @return string
794
+     */
795 795
     public static function string2attributeJS($string, $quoted=true)
796 796
     {
797 797
         $converted = addslashes(htmlspecialchars(strip_tags($string), ENT_QUOTES, 'UTF-8'));
@@ -802,15 +802,15 @@  discard block
 block discarded – undo
802 802
         return $converted;
803 803
     }
804 804
     
805
-   /**
806
-    * Checks if the specified string is a boolean value, which
807
-    * includes string representations of boolean values, like 
808
-    * <code>yes</code> or <code>no</code>, and <code>true</code>
809
-    * or <code>false</code>.
810
-    * 
811
-    * @param mixed $value
812
-    * @return boolean
813
-    */
805
+    /**
806
+     * Checks if the specified string is a boolean value, which
807
+     * includes string representations of boolean values, like 
808
+     * <code>yes</code> or <code>no</code>, and <code>true</code>
809
+     * or <code>false</code>.
810
+     * 
811
+     * @param mixed $value
812
+     * @return boolean
813
+     */
814 814
     public static function isBoolean($value) : bool
815 815
     {
816 816
         if(is_bool($value)) {
@@ -824,12 +824,12 @@  discard block
 block discarded – undo
824 824
         return array_key_exists($value, self::$booleanStrings);
825 825
     }
826 826
     
827
-   /**
828
-    * Converts an associative array to an HTML style attribute value string.
829
-    * 
830
-    * @param array $subject
831
-    * @return string
832
-    */
827
+    /**
828
+     * Converts an associative array to an HTML style attribute value string.
829
+     * 
830
+     * @param array $subject
831
+     * @return string
832
+     */
833 833
     public static function array2styleString(array $subject) : string
834 834
     {
835 835
         $tokens = array();
@@ -840,23 +840,23 @@  discard block
 block discarded – undo
840 840
         return implode(';', $tokens);
841 841
     }
842 842
     
843
-   /**
844
-    * Converts a DateTime object to a timestamp, which
845
-    * is PHP 5.2 compatible.
846
-    * 
847
-    * @param \DateTime $date
848
-    * @return integer
849
-    */
843
+    /**
844
+     * Converts a DateTime object to a timestamp, which
845
+     * is PHP 5.2 compatible.
846
+     * 
847
+     * @param \DateTime $date
848
+     * @return integer
849
+     */
850 850
     public static function date2timestamp(\DateTime $date) : int
851 851
     {
852 852
         return (int)$date->format('U');
853 853
     }
854 854
     
855
-   /**
856
-    * Converts a timestamp into a DateTime instance.
857
-    * @param int $timestamp
858
-    * @return \DateTime
859
-    */
855
+    /**
856
+     * Converts a timestamp into a DateTime instance.
857
+     * @param int $timestamp
858
+     * @return \DateTime
859
+     */
860 860
     public static function timestamp2date(int $timestamp) : \DateTime
861 861
     {
862 862
         $date = new \DateTime();
@@ -864,50 +864,50 @@  discard block
 block discarded – undo
864 864
         return $date;
865 865
     }
866 866
     
867
-   /**
868
-    * Strips an absolute path to a file within the application
869
-    * to make the path relative to the application root path.
870
-    * 
871
-    * @param string $path
872
-    * @return string
873
-    * 
874
-    * @see FileHelper::relativizePath()
875
-    * @see FileHelper::relativizePathByDepth()
876
-    */
867
+    /**
868
+     * Strips an absolute path to a file within the application
869
+     * to make the path relative to the application root path.
870
+     * 
871
+     * @param string $path
872
+     * @return string
873
+     * 
874
+     * @see FileHelper::relativizePath()
875
+     * @see FileHelper::relativizePathByDepth()
876
+     */
877 877
     public static function fileRelativize(string $path) : string
878 878
     {
879 879
         return FileHelper::relativizePathByDepth($path);
880 880
     }
881 881
     
882 882
     /**
883
-    * Converts a PHP regex to a javascript RegExp object statement.
884
-    * 
885
-    * NOTE: This is an alias for the JSHelper's `convertRegex` method. 
886
-    * More details are available on its usage there.
887
-    *
888
-    * @param string $regex A PHP preg regex
889
-    * @param string $statementType The type of statement to return: Defaults to a statement to create a RegExp object.
890
-    * @return array|string Depending on the specified return type.
891
-    * 
892
-    * @see JSHelper::buildRegexStatement()
893
-    */
883
+     * Converts a PHP regex to a javascript RegExp object statement.
884
+     * 
885
+     * NOTE: This is an alias for the JSHelper's `convertRegex` method. 
886
+     * More details are available on its usage there.
887
+     *
888
+     * @param string $regex A PHP preg regex
889
+     * @param string $statementType The type of statement to return: Defaults to a statement to create a RegExp object.
890
+     * @return array|string Depending on the specified return type.
891
+     * 
892
+     * @see JSHelper::buildRegexStatement()
893
+     */
894 894
     public static function regex2js(string $regex, string $statementType=JSHelper::JS_REGEX_OBJECT)
895 895
     {
896 896
         return JSHelper::buildRegexStatement($regex, $statementType);
897 897
     }
898 898
     
899
-   /**
900
-    * Converts the specified variable to JSON. Works just
901
-    * like the native `json_encode` method, except that it
902
-    * will trigger an exception on failure, which has the 
903
-    * json error details included in its developer details.
904
-    * 
905
-    * @param mixed $variable
906
-    * @param int $options JSON encode options.
907
-    * @param int $depth 
908
-    * @throws ConvertHelper_Exception
909
-    * @return string
910
-    */
899
+    /**
900
+     * Converts the specified variable to JSON. Works just
901
+     * like the native `json_encode` method, except that it
902
+     * will trigger an exception on failure, which has the 
903
+     * json error details included in its developer details.
904
+     * 
905
+     * @param mixed $variable
906
+     * @param int $options JSON encode options.
907
+     * @param int $depth 
908
+     * @throws ConvertHelper_Exception
909
+     * @return string
910
+     */
911 911
     public static function var2json($variable, int $options=0, int $depth=512) : string
912 912
     {
913 913
         $result = json_encode($variable, $options, $depth);
@@ -928,12 +928,12 @@  discard block
 block discarded – undo
928 928
         );
929 929
     }
930 930
     
931
-   /**
932
-    * Strips all known UTF byte order marks from the specified string.
933
-    * 
934
-    * @param string $string
935
-    * @return string
936
-    */
931
+    /**
932
+     * Strips all known UTF byte order marks from the specified string.
933
+     * 
934
+     * @param string $string
935
+     * @return string
936
+     */
937 937
     public static function stripUTFBom($string)
938 938
     {
939 939
         $boms = FileHelper::getUTFBOMs();
@@ -948,13 +948,13 @@  discard block
 block discarded – undo
948 948
         return $string;
949 949
     }
950 950
 
951
-   /**
952
-    * Converts a string to valid utf8, regardless
953
-    * of the string's encoding(s).
954
-    * 
955
-    * @param string $string
956
-    * @return string
957
-    */
951
+    /**
952
+     * Converts a string to valid utf8, regardless
953
+     * of the string's encoding(s).
954
+     * 
955
+     * @param string $string
956
+     * @return string
957
+     */
958 958
     public static function string2utf8($string)
959 959
     {
960 960
         if(!self::isStringASCII($string)) {
@@ -964,15 +964,15 @@  discard block
 block discarded – undo
964 964
         return $string;
965 965
     }
966 966
     
967
-   /**
968
-    * Checks whether the specified string is an ASCII
969
-    * string, without any special or UTF8 characters.
970
-    * Note: empty strings and NULL are considered ASCII.
971
-    * Any variable types other than strings are not.
972
-    * 
973
-    * @param mixed $string
974
-    * @return boolean
975
-    */
967
+    /**
968
+     * Checks whether the specified string is an ASCII
969
+     * string, without any special or UTF8 characters.
970
+     * Note: empty strings and NULL are considered ASCII.
971
+     * Any variable types other than strings are not.
972
+     * 
973
+     * @param mixed $string
974
+     * @return boolean
975
+     */
976 976
     public static function isStringASCII($string) : bool
977 977
     {
978 978
         if($string === '' || $string === NULL) {
@@ -997,22 +997,22 @@  discard block
 block discarded – undo
997 997
         return $url;
998 998
     }
999 999
 
1000
-   /**
1001
-    * Calculates a percentage match of the source string with the target string.
1002
-    * 
1003
-    * Options are:
1004
-    * 
1005
-    * - maxLevenshtein, default: 10
1006
-    *   Any levenshtein results above this value are ignored.
1007
-    *   
1008
-    * - precision, default: 1
1009
-    *   The precision of the percentage float value
1010
-    * 
1011
-    * @param string $source
1012
-    * @param string $target
1013
-    * @param array $options
1014
-    * @return float
1015
-    */
1000
+    /**
1001
+     * Calculates a percentage match of the source string with the target string.
1002
+     * 
1003
+     * Options are:
1004
+     * 
1005
+     * - maxLevenshtein, default: 10
1006
+     *   Any levenshtein results above this value are ignored.
1007
+     *   
1008
+     * - precision, default: 1
1009
+     *   The precision of the percentage float value
1010
+     * 
1011
+     * @param string $source
1012
+     * @param string $target
1013
+     * @param array $options
1014
+     * @return float
1015
+     */
1016 1016
     public static function matchString($source, $target, $options=array())
1017 1017
     {
1018 1018
         $defaults = array(
@@ -1036,14 +1036,14 @@  discard block
 block discarded – undo
1036 1036
         return round(100 - $percent, $options['precision']);
1037 1037
     }
1038 1038
     
1039
-   /**
1040
-    * Converts a date interval to a human readable string with
1041
-    * all necessary time components, e.g. "1 year, 2 months and 4 days".
1042
-    * 
1043
-    * @param \DateInterval $interval
1044
-    * @return string
1045
-    * @see ConvertHelper_IntervalConverter
1046
-    */
1039
+    /**
1040
+     * Converts a date interval to a human readable string with
1041
+     * all necessary time components, e.g. "1 year, 2 months and 4 days".
1042
+     * 
1043
+     * @param \DateInterval $interval
1044
+     * @return string
1045
+     * @see ConvertHelper_IntervalConverter
1046
+     */
1047 1047
     public static function interval2string(\DateInterval $interval) : string
1048 1048
     {
1049 1049
         $converter = new ConvertHelper_IntervalConverter();
@@ -1058,60 +1058,60 @@  discard block
 block discarded – undo
1058 1058
     
1059 1059
     const INTERVAL_SECONDS = 'seconds';
1060 1060
     
1061
-   /**
1062
-    * Converts an interval to its total amount of days.
1063
-    * @param \DateInterval $interval
1064
-    * @return int
1065
-    */
1061
+    /**
1062
+     * Converts an interval to its total amount of days.
1063
+     * @param \DateInterval $interval
1064
+     * @return int
1065
+     */
1066 1066
     public static function interval2days(\DateInterval $interval) : int
1067 1067
     {
1068 1068
         return self::interval2total($interval, self::INTERVAL_DAYS);
1069 1069
     }
1070 1070
 
1071
-   /**
1072
-    * Converts an interval to its total amount of hours.
1073
-    * @param \DateInterval $interval
1074
-    * @return int
1075
-    */
1071
+    /**
1072
+     * Converts an interval to its total amount of hours.
1073
+     * @param \DateInterval $interval
1074
+     * @return int
1075
+     */
1076 1076
     public static function interval2hours(\DateInterval $interval) : int
1077 1077
     {
1078 1078
         return self::interval2total($interval, self::INTERVAL_HOURS);
1079 1079
     }
1080 1080
     
1081
-   /**
1082
-    * Converts an interval to its total amount of minutes. 
1083
-    * @param \DateInterval $interval
1084
-    * @return int
1085
-    */
1081
+    /**
1082
+     * Converts an interval to its total amount of minutes. 
1083
+     * @param \DateInterval $interval
1084
+     * @return int
1085
+     */
1086 1086
     public static function interval2minutes(\DateInterval $interval) : int
1087 1087
     {
1088 1088
         return self::interval2total($interval, self::INTERVAL_MINUTES);
1089 1089
     }
1090 1090
     
1091
-   /**
1092
-    * Converts an interval to its total amount of seconds.
1093
-    * @param \DateInterval $interval
1094
-    * @return int
1095
-    */    
1091
+    /**
1092
+     * Converts an interval to its total amount of seconds.
1093
+     * @param \DateInterval $interval
1094
+     * @return int
1095
+     */    
1096 1096
     public static function interval2seconds(\DateInterval $interval) : int
1097 1097
     {
1098 1098
         return self::interval2total($interval, self::INTERVAL_SECONDS);
1099 1099
     }
1100 1100
     
1101
-   /**
1102
-    * Calculates the total amount of days / hours / minutes or seconds
1103
-    * of a date interval object (depending in the specified units), and 
1104
-    * returns the total amount.
1105
-    * 
1106
-    * @param \DateInterval $interval
1107
-    * @param string $unit What total value to calculate.
1108
-    * @return integer
1109
-    * 
1110
-    * @see ConvertHelper::INTERVAL_SECONDS
1111
-    * @see ConvertHelper::INTERVAL_MINUTES
1112
-    * @see ConvertHelper::INTERVAL_HOURS
1113
-    * @see ConvertHelper::INTERVAL_DAYS
1114
-    */
1101
+    /**
1102
+     * Calculates the total amount of days / hours / minutes or seconds
1103
+     * of a date interval object (depending in the specified units), and 
1104
+     * returns the total amount.
1105
+     * 
1106
+     * @param \DateInterval $interval
1107
+     * @param string $unit What total value to calculate.
1108
+     * @return integer
1109
+     * 
1110
+     * @see ConvertHelper::INTERVAL_SECONDS
1111
+     * @see ConvertHelper::INTERVAL_MINUTES
1112
+     * @see ConvertHelper::INTERVAL_HOURS
1113
+     * @see ConvertHelper::INTERVAL_DAYS
1114
+     */
1115 1115
     public static function interval2total(\DateInterval $interval, $unit=self::INTERVAL_SECONDS) : int
1116 1116
     {
1117 1117
         $total = (int)$interval->format('%a');
@@ -1151,13 +1151,13 @@  discard block
 block discarded – undo
1151 1151
         'Sunday'
1152 1152
     );
1153 1153
     
1154
-   /**
1155
-    * Converts a date to the corresponding day name.
1156
-    * 
1157
-    * @param \DateTime $date
1158
-    * @param bool $short
1159
-    * @return string|NULL
1160
-    */
1154
+    /**
1155
+     * Converts a date to the corresponding day name.
1156
+     * 
1157
+     * @param \DateTime $date
1158
+     * @param bool $short
1159
+     * @return string|NULL
1160
+     */
1161 1161
     public static function date2dayName(\DateTime $date, bool $short=false)
1162 1162
     {
1163 1163
         $day = $date->format('l');
@@ -1172,21 +1172,21 @@  discard block
 block discarded – undo
1172 1172
         return null;
1173 1173
     }
1174 1174
     
1175
-   /**
1176
-    * Retrieves a list of english day names.
1177
-    * @return string[]
1178
-    */
1175
+    /**
1176
+     * Retrieves a list of english day names.
1177
+     * @return string[]
1178
+     */
1179 1179
     public static function getDayNamesInvariant()
1180 1180
     {
1181 1181
         return self::$daysInvariant;
1182 1182
     }
1183 1183
     
1184
-   /**
1185
-    * Retrieves the day names list for the current locale.
1186
-    * 
1187
-    * @param bool $short
1188
-    * @return array
1189
-    */
1184
+    /**
1185
+     * Retrieves the day names list for the current locale.
1186
+     * 
1187
+     * @param bool $short
1188
+     * @return array
1189
+     */
1190 1190
     public static function getDayNames(bool $short=false) : array
1191 1191
     {
1192 1192
         if($short) {
@@ -1246,16 +1246,16 @@  discard block
 block discarded – undo
1246 1246
         return $last;
1247 1247
     }
1248 1248
     
1249
-   /**
1250
-    * Splits a string into an array of all characters it is composed of.
1251
-    * Unicode character safe.
1252
-    * 
1253
-    * NOTE: Spaces and newlines (both \r and \n) are also considered single
1254
-    * characters.
1255
-    * 
1256
-    * @param string $string
1257
-    * @return array
1258
-    */
1249
+    /**
1250
+     * Splits a string into an array of all characters it is composed of.
1251
+     * Unicode character safe.
1252
+     * 
1253
+     * NOTE: Spaces and newlines (both \r and \n) are also considered single
1254
+     * characters.
1255
+     * 
1256
+     * @param string $string
1257
+     * @return array
1258
+     */
1259 1259
     public static function string2array(string $string) : array
1260 1260
     {
1261 1261
         $result = preg_split('//u', $string, null, PREG_SPLIT_NO_EMPTY);
@@ -1266,12 +1266,12 @@  discard block
 block discarded – undo
1266 1266
         return array();
1267 1267
     }
1268 1268
     
1269
-   /**
1270
-    * Checks whether the specified string contains HTML code.
1271
-    * 
1272
-    * @param string $string
1273
-    * @return boolean
1274
-    */
1269
+    /**
1270
+     * Checks whether the specified string contains HTML code.
1271
+     * 
1272
+     * @param string $string
1273
+     * @return boolean
1274
+     */
1275 1275
     public static function isStringHTML(string $string) : bool
1276 1276
     {
1277 1277
         if(preg_match('%<[a-z/][\s\S]*>%siU', $string)) {
@@ -1286,17 +1286,17 @@  discard block
 block discarded – undo
1286 1286
         return false;
1287 1287
     }
1288 1288
     
1289
-   /**
1290
-    * UTF8-safe wordwrap method: works like the regular wordwrap
1291
-    * PHP function but compatible with UTF8. Otherwise the lengths
1292
-    * are not calculated correctly.
1293
-    * 
1294
-    * @param string $str
1295
-    * @param int $width
1296
-    * @param string $break
1297
-    * @param bool $cut
1298
-    * @return string
1299
-    */
1289
+    /**
1290
+     * UTF8-safe wordwrap method: works like the regular wordwrap
1291
+     * PHP function but compatible with UTF8. Otherwise the lengths
1292
+     * are not calculated correctly.
1293
+     * 
1294
+     * @param string $str
1295
+     * @param int $width
1296
+     * @param string $break
1297
+     * @param bool $cut
1298
+     * @return string
1299
+     */
1300 1300
     public static function wordwrap(string $str, int $width = 75, string $break = "\n", bool $cut = false) : string 
1301 1301
     {
1302 1302
         $wrapper = new ConvertHelper_WordWrapper();
@@ -1308,27 +1308,27 @@  discard block
 block discarded – undo
1308 1308
         ->wrapText($str);
1309 1309
     }
1310 1310
     
1311
-   /**
1312
-    * Calculates the byte length of a string, taking into 
1313
-    * account any unicode characters.
1314
-    * 
1315
-    * @param string $string
1316
-    * @return int
1317
-    * @see https://stackoverflow.com/a/9718273/2298192
1318
-    */
1311
+    /**
1312
+     * Calculates the byte length of a string, taking into 
1313
+     * account any unicode characters.
1314
+     * 
1315
+     * @param string $string
1316
+     * @return int
1317
+     * @see https://stackoverflow.com/a/9718273/2298192
1318
+     */
1319 1319
     public static function string2bytes($string)
1320 1320
     {
1321 1321
         return mb_strlen($string, '8bit');
1322 1322
     }
1323 1323
     
1324
-   /**
1325
-    * Creates a short, 8-character long hash for the specified string.
1326
-    * 
1327
-    * WARNING: Not cryptographically safe.
1328
-    * 
1329
-    * @param string $string
1330
-    * @return string
1331
-    */
1324
+    /**
1325
+     * Creates a short, 8-character long hash for the specified string.
1326
+     * 
1327
+     * WARNING: Not cryptographically safe.
1328
+     * 
1329
+     * @param string $string
1330
+     * @return string
1331
+     */
1332 1332
     public static function string2shortHash($string)
1333 1333
     {
1334 1334
         return hash('crc32', $string, false);
@@ -1354,40 +1354,40 @@  discard block
 block discarded – undo
1354 1354
         return ConvertHelper_ThrowableInfo::fromThrowable($e);
1355 1355
     }
1356 1356
     
1357
-   /**
1358
-    * Parses the specified query string like the native 
1359
-    * function <code>parse_str</code>, without the key
1360
-    * naming limitations.
1361
-    * 
1362
-    * Using parse_str, dots or spaces in key names are 
1363
-    * replaced by underscores. This method keeps all names
1364
-    * intact.
1365
-    * 
1366
-    * It still uses the parse_str implementation as it 
1367
-    * is tested and tried, but fixes the parameter names
1368
-    * after parsing, as needed.
1369
-    * 
1370
-    * @param string $queryString
1371
-    * @return array
1372
-    * @see ConvertHelper_QueryParser
1373
-    */
1357
+    /**
1358
+     * Parses the specified query string like the native 
1359
+     * function <code>parse_str</code>, without the key
1360
+     * naming limitations.
1361
+     * 
1362
+     * Using parse_str, dots or spaces in key names are 
1363
+     * replaced by underscores. This method keeps all names
1364
+     * intact.
1365
+     * 
1366
+     * It still uses the parse_str implementation as it 
1367
+     * is tested and tried, but fixes the parameter names
1368
+     * after parsing, as needed.
1369
+     * 
1370
+     * @param string $queryString
1371
+     * @return array
1372
+     * @see ConvertHelper_QueryParser
1373
+     */
1374 1374
     public static function parseQueryString(string $queryString) : array
1375 1375
     {
1376 1376
         $parser = new ConvertHelper_QueryParser();
1377 1377
         return $parser->parse($queryString);
1378 1378
     }
1379 1379
 
1380
-   /**
1381
-    * Searches for needle in the specified string, and returns a list
1382
-    * of all occurrences, including the matched string. The matched 
1383
-    * string is useful when doing a case insensitive search, as it 
1384
-    * shows the exact matched case of needle.
1385
-    *   
1386
-    * @param string $needle
1387
-    * @param string $haystack
1388
-    * @param bool $caseInsensitive
1389
-    * @return ConvertHelper_StringMatch[]
1390
-    */
1380
+    /**
1381
+     * Searches for needle in the specified string, and returns a list
1382
+     * of all occurrences, including the matched string. The matched 
1383
+     * string is useful when doing a case insensitive search, as it 
1384
+     * shows the exact matched case of needle.
1385
+     *   
1386
+     * @param string $needle
1387
+     * @param string $haystack
1388
+     * @param bool $caseInsensitive
1389
+     * @return ConvertHelper_StringMatch[]
1390
+     */
1391 1391
     public static function findString(string $needle, string $haystack, bool $caseInsensitive=false)
1392 1392
     {
1393 1393
         if($needle === '') {
@@ -1413,14 +1413,14 @@  discard block
 block discarded – undo
1413 1413
         return $positions;
1414 1414
     }
1415 1415
     
1416
-   /**
1417
-    * Like explode, but trims all entries, and removes 
1418
-    * empty entries from the resulting array.
1419
-    * 
1420
-    * @param string $delimiter
1421
-    * @param string $string
1422
-    * @return string[]
1423
-    */
1416
+    /**
1417
+     * Like explode, but trims all entries, and removes 
1418
+     * empty entries from the resulting array.
1419
+     * 
1420
+     * @param string $delimiter
1421
+     * @param string $string
1422
+     * @return string[]
1423
+     */
1424 1424
     public static function explodeTrim(string $delimiter, string $string) : array
1425 1425
     {
1426 1426
         if(empty($string) || empty($delimiter)) {
@@ -1442,12 +1442,12 @@  discard block
 block discarded – undo
1442 1442
     
1443 1443
     protected static $eolChars;
1444 1444
 
1445
-   /**
1446
-    * Detects the most used end-of-line character in the subject string.
1447
-    * 
1448
-    * @param string $subjectString The string to check.
1449
-    * @return NULL|ConvertHelper_EOL The detected EOL instance, or NULL if none has been detected.
1450
-    */
1445
+    /**
1446
+     * Detects the most used end-of-line character in the subject string.
1447
+     * 
1448
+     * @param string $subjectString The string to check.
1449
+     * @return NULL|ConvertHelper_EOL The detected EOL instance, or NULL if none has been detected.
1450
+     */
1451 1451
     public static function detectEOLCharacter(string $subjectString) : ?ConvertHelper_EOL
1452 1452
     {
1453 1453
         if(empty($subjectString)) {
@@ -1459,27 +1459,27 @@  discard block
 block discarded – undo
1459 1459
             $cr = chr((int)hexdec('0d'));
1460 1460
             $lf = chr((int)hexdec('0a'));
1461 1461
             
1462
-           self::$eolChars = array(
1463
-               array(
1464
-                   'char' => $cr.$lf,
1465
-                   'type' => ConvertHelper_EOL::TYPE_CRLF,
1466
-                   'description' => t('Carriage return followed by a line feed'),
1467
-               ),
1468
-               array(
1469
-                   'char' => $lf.$cr,
1470
-                   'type' => ConvertHelper_EOL::TYPE_LFCR,
1471
-                   'description' => t('Line feed followed by a carriage return'),
1472
-               ),
1473
-               array(
1474
-                  'char' => $lf,
1475
-                  'type' => ConvertHelper_EOL::TYPE_LF,
1476
-                  'description' => t('Line feed'),
1477
-               ),
1478
-               array(
1479
-                  'char' => $cr,
1480
-                  'type' => ConvertHelper_EOL::TYPE_CR,
1481
-                  'description' => t('Carriage Return'),
1482
-               ),
1462
+            self::$eolChars = array(
1463
+                array(
1464
+                    'char' => $cr.$lf,
1465
+                    'type' => ConvertHelper_EOL::TYPE_CRLF,
1466
+                    'description' => t('Carriage return followed by a line feed'),
1467
+                ),
1468
+                array(
1469
+                    'char' => $lf.$cr,
1470
+                    'type' => ConvertHelper_EOL::TYPE_LFCR,
1471
+                    'description' => t('Line feed followed by a carriage return'),
1472
+                ),
1473
+                array(
1474
+                    'char' => $lf,
1475
+                    'type' => ConvertHelper_EOL::TYPE_LF,
1476
+                    'description' => t('Line feed'),
1477
+                ),
1478
+                array(
1479
+                    'char' => $cr,
1480
+                    'type' => ConvertHelper_EOL::TYPE_CR,
1481
+                    'description' => t('Carriage Return'),
1482
+                ),
1483 1483
             );
1484 1484
         }
1485 1485
         
@@ -1507,13 +1507,13 @@  discard block
 block discarded – undo
1507 1507
         );
1508 1508
     }
1509 1509
 
1510
-   /**
1511
-    * Removes the specified keys from the target array,
1512
-    * if they exist.
1513
-    * 
1514
-    * @param array $array
1515
-    * @param array $keys
1516
-    */
1510
+    /**
1511
+     * Removes the specified keys from the target array,
1512
+     * if they exist.
1513
+     * 
1514
+     * @param array $array
1515
+     * @param array $keys
1516
+     */
1517 1517
     public static function arrayRemoveKeys(array &$array, array $keys) : void
1518 1518
     {
1519 1519
         foreach($keys as $key) 
@@ -1524,13 +1524,13 @@  discard block
 block discarded – undo
1524 1524
         }
1525 1525
     }
1526 1526
     
1527
-   /**
1528
-    * Checks if the specified variable is an integer or a string containing an integer.
1529
-    * Accepts both positive and negative integers.
1530
-    * 
1531
-    * @param mixed $value
1532
-    * @return bool
1533
-    */
1527
+    /**
1528
+     * Checks if the specified variable is an integer or a string containing an integer.
1529
+     * Accepts both positive and negative integers.
1530
+     * 
1531
+     * @param mixed $value
1532
+     * @return bool
1533
+     */
1534 1534
     public static function isInteger($value) : bool
1535 1535
     {
1536 1536
         if(is_int($value)) {
@@ -1550,40 +1550,40 @@  discard block
 block discarded – undo
1550 1550
         return false;    
1551 1551
     }
1552 1552
     
1553
-   /**
1554
-    * Converts an amount of seconds to a DateInterval object.
1555
-    * 
1556
-    * @param int $seconds
1557
-    * @return \DateInterval
1558
-    * @throws ConvertHelper_Exception If the date interval cannot be created.
1559
-    * 
1560
-    * @see ConvertHelper::ERROR_CANNOT_GET_DATE_DIFF
1561
-    */
1553
+    /**
1554
+     * Converts an amount of seconds to a DateInterval object.
1555
+     * 
1556
+     * @param int $seconds
1557
+     * @return \DateInterval
1558
+     * @throws ConvertHelper_Exception If the date interval cannot be created.
1559
+     * 
1560
+     * @see ConvertHelper::ERROR_CANNOT_GET_DATE_DIFF
1561
+     */
1562 1562
     public static function seconds2interval(int $seconds) : \DateInterval
1563 1563
     {
1564 1564
         return ConvertHelper_DateInterval::fromSeconds($seconds)->getInterval();
1565 1565
     }
1566 1566
     
1567
-   /**
1568
-    * Converts a size string like "50 MB" to the corresponding byte size.
1569
-    * It is case insensitive, ignores spaces, and supports both traditional
1570
-    * "MB" and "MiB" notations.
1571
-    * 
1572
-    * @param string $size
1573
-    * @return int
1574
-    */
1567
+    /**
1568
+     * Converts a size string like "50 MB" to the corresponding byte size.
1569
+     * It is case insensitive, ignores spaces, and supports both traditional
1570
+     * "MB" and "MiB" notations.
1571
+     * 
1572
+     * @param string $size
1573
+     * @return int
1574
+     */
1575 1575
     public static function size2bytes(string $size) : int
1576 1576
     {
1577 1577
         return self::parseSize($size)->toBytes();
1578 1578
     }
1579 1579
     
1580
-   /**
1581
-    * Parses a size string like "50 MB" and returns a size notation instance
1582
-    * that has utility methods to access information on it, and convert it.
1583
-    * 
1584
-    * @param string $size
1585
-    * @return ConvertHelper_SizeNotation
1586
-    */
1580
+    /**
1581
+     * Parses a size string like "50 MB" and returns a size notation instance
1582
+     * that has utility methods to access information on it, and convert it.
1583
+     * 
1584
+     * @param string $size
1585
+     * @return ConvertHelper_SizeNotation
1586
+     */
1587 1587
     public static function parseSize(string $size) : ConvertHelper_SizeNotation
1588 1588
     {
1589 1589
         return new ConvertHelper_SizeNotation($size);
Please login to merge, or discard this patch.
src/FileHelper.php 1 patch
Indentation   +422 added lines, -422 removed lines patch added patch discarded remove patch
@@ -78,32 +78,32 @@  discard block
 block discarded – undo
78 78
     
79 79
     const ERROR_PATH_IS_NOT_A_FOLDER = 340034;
80 80
     
81
-   /**
82
-    * Opens a serialized file and returns the unserialized data.
83
-    * 
84
-    * @param string $file
85
-    * @throws FileHelper_Exception
86
-    * @return array
87
-    * @deprecated Use parseSerializedFile() instead.
88
-    * @see FileHelper::parseSerializedFile()
89
-    */
81
+    /**
82
+     * Opens a serialized file and returns the unserialized data.
83
+     * 
84
+     * @param string $file
85
+     * @throws FileHelper_Exception
86
+     * @return array
87
+     * @deprecated Use parseSerializedFile() instead.
88
+     * @see FileHelper::parseSerializedFile()
89
+     */
90 90
     public static function openUnserialized(string $file) : array
91 91
     {
92 92
         return self::parseSerializedFile($file);
93 93
     }
94 94
 
95
-   /**
96
-    * Opens a serialized file and returns the unserialized data.
97
-    *
98
-    * @param string $file
99
-    * @throws FileHelper_Exception
100
-    * @return array
101
-    * @see FileHelper::parseSerializedFile()
102
-    * 
103
-    * @see FileHelper::ERROR_FILE_DOES_NOT_EXIST
104
-    * @see FileHelper::ERROR_SERIALIZED_FILE_CANNOT_BE_READ
105
-    * @see FileHelper::ERROR_SERIALIZED_FILE_UNSERIALZE_FAILED
106
-    */
95
+    /**
96
+     * Opens a serialized file and returns the unserialized data.
97
+     *
98
+     * @param string $file
99
+     * @throws FileHelper_Exception
100
+     * @return array
101
+     * @see FileHelper::parseSerializedFile()
102
+     * 
103
+     * @see FileHelper::ERROR_FILE_DOES_NOT_EXIST
104
+     * @see FileHelper::ERROR_SERIALIZED_FILE_CANNOT_BE_READ
105
+     * @see FileHelper::ERROR_SERIALIZED_FILE_UNSERIALZE_FAILED
106
+     */
107 107
     public static function parseSerializedFile(string $file)
108 108
     {
109 109
         self::requireFileExists($file);
@@ -172,13 +172,13 @@  discard block
 block discarded – undo
172 172
         return rmdir($rootFolder);
173 173
     }
174 174
     
175
-   /**
176
-    * Create a folder, if it does not exist yet.
177
-    *  
178
-    * @param string $path
179
-    * @throws FileHelper_Exception
180
-    * @see FileHelper::ERROR_CANNOT_CREATE_FOLDER
181
-    */
175
+    /**
176
+     * Create a folder, if it does not exist yet.
177
+     *  
178
+     * @param string $path
179
+     * @throws FileHelper_Exception
180
+     * @see FileHelper::ERROR_CANNOT_CREATE_FOLDER
181
+     */
182 182
     public static function createFolder($path)
183 183
     {
184 184
         if(is_dir($path) || mkdir($path, 0777, true)) {
@@ -225,22 +225,22 @@  discard block
 block discarded – undo
225 225
         }
226 226
     }
227 227
     
228
-   /**
229
-    * Copies a file to the target location. Includes checks
230
-    * for most error sources, like the source file not being
231
-    * readable. Automatically creates the target folder if it
232
-    * does not exist yet.
233
-    * 
234
-    * @param string $sourcePath
235
-    * @param string $targetPath
236
-    * @throws FileHelper_Exception
237
-    * 
238
-    * @see FileHelper::ERROR_CANNOT_CREATE_FOLDER
239
-    * @see FileHelper::ERROR_SOURCE_FILE_NOT_FOUND
240
-    * @see FileHelper::ERROR_SOURCE_FILE_NOT_READABLE
241
-    * @see FileHelper::ERROR_TARGET_COPY_FOLDER_NOT_WRITABLE
242
-    * @see FileHelper::ERROR_CANNOT_COPY_FILE
243
-    */
228
+    /**
229
+     * Copies a file to the target location. Includes checks
230
+     * for most error sources, like the source file not being
231
+     * readable. Automatically creates the target folder if it
232
+     * does not exist yet.
233
+     * 
234
+     * @param string $sourcePath
235
+     * @param string $targetPath
236
+     * @throws FileHelper_Exception
237
+     * 
238
+     * @see FileHelper::ERROR_CANNOT_CREATE_FOLDER
239
+     * @see FileHelper::ERROR_SOURCE_FILE_NOT_FOUND
240
+     * @see FileHelper::ERROR_SOURCE_FILE_NOT_READABLE
241
+     * @see FileHelper::ERROR_TARGET_COPY_FOLDER_NOT_WRITABLE
242
+     * @see FileHelper::ERROR_CANNOT_COPY_FILE
243
+     */
244 244
     public static function copyFile($sourcePath, $targetPath)
245 245
     {
246 246
         self::requireFileExists($sourcePath, self::ERROR_SOURCE_FILE_NOT_FOUND);
@@ -291,15 +291,15 @@  discard block
 block discarded – undo
291 291
         );
292 292
     }
293 293
     
294
-   /**
295
-    * Deletes the target file. Ignored if it cannot be found,
296
-    * and throws an exception if it fails.
297
-    * 
298
-    * @param string $filePath
299
-    * @throws FileHelper_Exception
300
-    * 
301
-    * @see FileHelper::ERROR_CANNOT_DELETE_FILE
302
-    */
294
+    /**
295
+     * Deletes the target file. Ignored if it cannot be found,
296
+     * and throws an exception if it fails.
297
+     * 
298
+     * @param string $filePath
299
+     * @throws FileHelper_Exception
300
+     * 
301
+     * @see FileHelper::ERROR_CANNOT_DELETE_FILE
302
+     */
303 303
     public static function deleteFile(string $filePath) : void
304 304
     {
305 305
         if(!file_exists($filePath)) {
@@ -321,15 +321,15 @@  discard block
 block discarded – undo
321 321
     }
322 322
 
323 323
     /**
324
-    * Creates a new CSV parser instance and returns it.
325
-    * 
326
-    * @param string $delimiter
327
-    * @param string $enclosure
328
-    * @param string $escape
329
-    * @param bool $heading
330
-    * @return \parseCSV
331
-    * @todo Move this to the CSV helper.
332
-    */
324
+     * Creates a new CSV parser instance and returns it.
325
+     * 
326
+     * @param string $delimiter
327
+     * @param string $enclosure
328
+     * @param string $escape
329
+     * @param bool $heading
330
+     * @return \parseCSV
331
+     * @todo Move this to the CSV helper.
332
+     */
333 333
     public static function createCSVParser(string $delimiter = ';', string $enclosure = '"', string $escape = '\\', bool $heading=false) : \parseCSV
334 334
     {
335 335
         if($delimiter==='') { $delimiter = ';'; }
@@ -344,23 +344,23 @@  discard block
 block discarded – undo
344 344
         return $parser;
345 345
     }
346 346
 
347
-   /**
348
-    * Parses all lines in the specified string and returns an
349
-    * indexed array with all csv values in each line.
350
-    *
351
-    * @param string $csv
352
-    * @param string $delimiter
353
-    * @param string $enclosure
354
-    * @param string $escape
355
-    * @param bool $heading
356
-    * @return array
357
-    * @throws FileHelper_Exception
358
-    * 
359
-    * @todo Move this to the CSVHelper.
360
-    *
361
-    * @see parseCSVFile()
362
-    * @see FileHelper::ERROR_PARSING_CSV
363
-    */
347
+    /**
348
+     * Parses all lines in the specified string and returns an
349
+     * indexed array with all csv values in each line.
350
+     *
351
+     * @param string $csv
352
+     * @param string $delimiter
353
+     * @param string $enclosure
354
+     * @param string $escape
355
+     * @param bool $heading
356
+     * @return array
357
+     * @throws FileHelper_Exception
358
+     * 
359
+     * @todo Move this to the CSVHelper.
360
+     *
361
+     * @see parseCSVFile()
362
+     * @see FileHelper::ERROR_PARSING_CSV
363
+     */
364 364
     public static function parseCSVString(string $csv, string $delimiter = ';', string $enclosure = '"', string $escape = '\\', bool $heading=false) : array
365 365
     {
366 366
         $parser = self::createCSVParser($delimiter, $enclosure, $escape, $heading);
@@ -532,31 +532,31 @@  discard block
 block discarded – undo
532 532
         );
533 533
     }
534 534
     
535
-   /**
536
-    * Verifies whether the target file is a PHP file. The path
537
-    * to the file can be a path to a file as a string, or a 
538
-    * DirectoryIterator object instance.
539
-    * 
540
-    * @param string|\DirectoryIterator $pathOrDirIterator
541
-    * @return boolean
542
-    */
535
+    /**
536
+     * Verifies whether the target file is a PHP file. The path
537
+     * to the file can be a path to a file as a string, or a 
538
+     * DirectoryIterator object instance.
539
+     * 
540
+     * @param string|\DirectoryIterator $pathOrDirIterator
541
+     * @return boolean
542
+     */
543 543
     public static function isPHPFile($pathOrDirIterator)
544 544
     {
545
-    	if(self::getExtension($pathOrDirIterator) == 'php') {
546
-    		return true;
547
-    	}
545
+        if(self::getExtension($pathOrDirIterator) == 'php') {
546
+            return true;
547
+        }
548 548
     	
549
-    	return false;
549
+        return false;
550 550
     }
551 551
     
552
-   /**
553
-    * Retrieves the extension of the specified file. Can be a path
554
-    * to a file as a string, or a DirectoryIterator object instance.
555
-    * 
556
-    * @param string|\DirectoryIterator $pathOrDirIterator
557
-    * @param bool $lowercase
558
-    * @return string
559
-    */
552
+    /**
553
+     * Retrieves the extension of the specified file. Can be a path
554
+     * to a file as a string, or a DirectoryIterator object instance.
555
+     * 
556
+     * @param string|\DirectoryIterator $pathOrDirIterator
557
+     * @param bool $lowercase
558
+     * @return string
559
+     */
560 560
     public static function getExtension($pathOrDirIterator, bool $lowercase = true) : string
561 561
     {
562 562
         if($pathOrDirIterator instanceof \DirectoryIterator) {
@@ -567,51 +567,51 @@  discard block
 block discarded – undo
567 567
          
568 568
         $ext = pathinfo($filename, PATHINFO_EXTENSION);
569 569
         if($lowercase) {
570
-        	$ext = mb_strtolower($ext);
570
+            $ext = mb_strtolower($ext);
571 571
         }
572 572
         
573 573
         return $ext;
574 574
     }
575 575
     
576
-   /**
577
-    * Retrieves the file name from a path, with or without extension.
578
-    * The path to the file can be a string, or a DirectoryIterator object
579
-    * instance.
580
-    * 
581
-    * In case of folders, behaves like the pathinfo function: returns
582
-    * the name of the folder.
583
-    * 
584
-    * @param string|\DirectoryIterator $pathOrDirIterator
585
-    * @param bool $extension
586
-    * @return string
587
-    */
576
+    /**
577
+     * Retrieves the file name from a path, with or without extension.
578
+     * The path to the file can be a string, or a DirectoryIterator object
579
+     * instance.
580
+     * 
581
+     * In case of folders, behaves like the pathinfo function: returns
582
+     * the name of the folder.
583
+     * 
584
+     * @param string|\DirectoryIterator $pathOrDirIterator
585
+     * @param bool $extension
586
+     * @return string
587
+     */
588 588
     public static function getFilename($pathOrDirIterator, $extension = true)
589 589
     {
590 590
         $path = $pathOrDirIterator;
591
-    	if($pathOrDirIterator instanceof \DirectoryIterator) {
592
-    		$path = $pathOrDirIterator->getFilename();
593
-    	}
591
+        if($pathOrDirIterator instanceof \DirectoryIterator) {
592
+            $path = $pathOrDirIterator->getFilename();
593
+        }
594 594
     	
595
-    	$path = self::normalizePath($path);
595
+        $path = self::normalizePath($path);
596 596
     	
597
-    	if(!$extension) {
598
-    	    return pathinfo($path, PATHINFO_FILENAME);
599
-    	}
597
+        if(!$extension) {
598
+            return pathinfo($path, PATHINFO_FILENAME);
599
+        }
600 600
     	
601
-    	return pathinfo($path, PATHINFO_BASENAME); 
601
+        return pathinfo($path, PATHINFO_BASENAME); 
602 602
     }
603 603
    
604
-   /**
605
-    * Tries to read the contents of the target file and
606
-    * treat it as JSON to return the decoded JSON data.
607
-    * 
608
-    * @param string $file
609
-    * @throws FileHelper_Exception
610
-    * @return array
611
-    * 
612
-    * @see FileHelper::ERROR_CANNOT_FIND_JSON_FILE
613
-    * @see FileHelper::ERROR_CANNOT_DECODE_JSON_FILE
614
-    */ 
604
+    /**
605
+     * Tries to read the contents of the target file and
606
+     * treat it as JSON to return the decoded JSON data.
607
+     * 
608
+     * @param string $file
609
+     * @throws FileHelper_Exception
610
+     * @return array
611
+     * 
612
+     * @see FileHelper::ERROR_CANNOT_FIND_JSON_FILE
613
+     * @see FileHelper::ERROR_CANNOT_DECODE_JSON_FILE
614
+     */ 
615 615
     public static function parseJSONFile(string $file, $targetEncoding=null, $sourceEncoding=null)
616 616
     {
617 617
         self::requireFileExists($file, self::ERROR_CANNOT_FIND_JSON_FILE);
@@ -647,16 +647,16 @@  discard block
 block discarded – undo
647 647
         return $json;
648 648
     }
649 649
     
650
-   /**
651
-    * Corrects common formatting mistakes when users enter
652
-    * file names, like too many spaces, dots and the like.
653
-    * 
654
-    * NOTE: if the file name contains a path, the path is
655
-    * stripped, leaving only the file name.
656
-    * 
657
-    * @param string $name
658
-    * @return string
659
-    */
650
+    /**
651
+     * Corrects common formatting mistakes when users enter
652
+     * file names, like too many spaces, dots and the like.
653
+     * 
654
+     * NOTE: if the file name contains a path, the path is
655
+     * stripped, leaving only the file name.
656
+     * 
657
+     * @param string $name
658
+     * @return string
659
+     */
660 660
     public static function fixFileName(string $name) : string
661 661
     {
662 662
         $name = trim($name);
@@ -686,68 +686,68 @@  discard block
 block discarded – undo
686 686
         return $name;
687 687
     }
688 688
     
689
-   /**
690
-    * Creates an instance of the file finder, which is an easier
691
-    * alternative to the other manual findFile methods, since all
692
-    * options can be set by chaining.
693
-    * 
694
-    * @param string $path
695
-    * @return FileHelper_FileFinder
696
-    */
689
+    /**
690
+     * Creates an instance of the file finder, which is an easier
691
+     * alternative to the other manual findFile methods, since all
692
+     * options can be set by chaining.
693
+     * 
694
+     * @param string $path
695
+     * @return FileHelper_FileFinder
696
+     */
697 697
     public static function createFileFinder(string $path) : FileHelper_FileFinder
698 698
     {
699 699
         return new FileHelper_FileFinder($path);
700 700
     }
701 701
     
702
-   /**
703
-    * Searches for all HTML files in the target folder.
704
-    * 
705
-    * NOTE: This method only exists for backwards compatibility.
706
-    * Use the `createFileFinder()` method instead, which offers
707
-    * an object oriented interface that is much easier to use.
708
-    * 
709
-    * @param string $targetFolder
710
-    * @param array $options
711
-    * @return array An indexed array with files.
712
-    * @see FileHelper::createFileFinder()
713
-    */
702
+    /**
703
+     * Searches for all HTML files in the target folder.
704
+     * 
705
+     * NOTE: This method only exists for backwards compatibility.
706
+     * Use the `createFileFinder()` method instead, which offers
707
+     * an object oriented interface that is much easier to use.
708
+     * 
709
+     * @param string $targetFolder
710
+     * @param array $options
711
+     * @return array An indexed array with files.
712
+     * @see FileHelper::createFileFinder()
713
+     */
714 714
     public static function findHTMLFiles(string $targetFolder, array $options=array()) : array
715 715
     {
716 716
         return self::findFiles($targetFolder, array('html'), $options);
717 717
     }
718 718
 
719
-   /**
720
-    * Searches for all PHP files in the target folder.
721
-    * 
722
-    * NOTE: This method only exists for backwards compatibility.
723
-    * Use the `createFileFinder()` method instead, which offers
724
-    * an object oriented interface that is much easier to use.
725
-    * 
726
-    * @param string $targetFolder
727
-    * @param array $options
728
-    * @return array An indexed array of PHP files.
729
-    * @see FileHelper::createFileFinder()
730
-    */
719
+    /**
720
+     * Searches for all PHP files in the target folder.
721
+     * 
722
+     * NOTE: This method only exists for backwards compatibility.
723
+     * Use the `createFileFinder()` method instead, which offers
724
+     * an object oriented interface that is much easier to use.
725
+     * 
726
+     * @param string $targetFolder
727
+     * @param array $options
728
+     * @return array An indexed array of PHP files.
729
+     * @see FileHelper::createFileFinder()
730
+     */
731 731
     public static function findPHPFiles(string $targetFolder, array $options=array()) : array
732 732
     {
733 733
         return self::findFiles($targetFolder, array('php'), $options);
734 734
     }
735 735
     
736
-   /**
737
-    * Finds files according to the specified options.
738
-    * 
739
-    * NOTE: This method only exists for backwards compatibility.
740
-    * Use the `createFileFinder()` method instead, which offers
741
-    * an object oriented interface that is much easier to use.
742
-    *  
743
-    * @param string $targetFolder
744
-    * @param array $extensions
745
-    * @param array $options
746
-    * @param array $files
747
-    * @throws FileHelper_Exception
748
-    * @return array
749
-    * @see FileHelper::createFileFinder()
750
-    */
736
+    /**
737
+     * Finds files according to the specified options.
738
+     * 
739
+     * NOTE: This method only exists for backwards compatibility.
740
+     * Use the `createFileFinder()` method instead, which offers
741
+     * an object oriented interface that is much easier to use.
742
+     *  
743
+     * @param string $targetFolder
744
+     * @param array $extensions
745
+     * @param array $options
746
+     * @param array $files
747
+     * @throws FileHelper_Exception
748
+     * @return array
749
+     * @see FileHelper::createFileFinder()
750
+     */
751 751
     public static function findFiles(string $targetFolder, array $extensions=array(), array $options=array(), array $files=array()) : array
752 752
     {
753 753
         $finder = self::createFileFinder($targetFolder);
@@ -773,13 +773,13 @@  discard block
 block discarded – undo
773 773
         return $finder->getAll();
774 774
     }
775 775
 
776
-   /**
777
-    * Removes the extension from the specified path or file name,
778
-    * if any, and returns the name without the extension.
779
-    * 
780
-    * @param string $filename
781
-    * @return sTring
782
-    */
776
+    /**
777
+     * Removes the extension from the specified path or file name,
778
+     * if any, and returns the name without the extension.
779
+     * 
780
+     * @param string $filename
781
+     * @return sTring
782
+     */
783 783
     public static function removeExtension(string $filename) : string
784 784
     {
785 785
         // normalize paths to allow windows style slashes even on nix servers
@@ -788,22 +788,22 @@  discard block
 block discarded – undo
788 788
         return pathinfo($filename, PATHINFO_FILENAME);
789 789
     }
790 790
     
791
-   /**
792
-    * Detects the UTF BOM in the target file, if any. Returns
793
-    * the encoding matching the BOM, which can be any of the
794
-    * following:
795
-    * 
796
-    * <ul>
797
-    * <li>UTF32-BE</li>
798
-    * <li>UTF32-LE</li>
799
-    * <li>UTF16-BE</li>
800
-    * <li>UTF16-LE</li>
801
-    * <li>UTF8</li>
802
-    * </ul>
803
-    * 
804
-    * @param string $filename
805
-    * @return string|NULL
806
-    */
791
+    /**
792
+     * Detects the UTF BOM in the target file, if any. Returns
793
+     * the encoding matching the BOM, which can be any of the
794
+     * following:
795
+     * 
796
+     * <ul>
797
+     * <li>UTF32-BE</li>
798
+     * <li>UTF32-LE</li>
799
+     * <li>UTF16-BE</li>
800
+     * <li>UTF16-LE</li>
801
+     * <li>UTF8</li>
802
+     * </ul>
803
+     * 
804
+     * @param string $filename
805
+     * @return string|NULL
806
+     */
807 807
     public static function detectUTFBom(string $filename) : ?string
808 808
     {
809 809
         $fp = fopen($filename, 'r');
@@ -835,13 +835,13 @@  discard block
 block discarded – undo
835 835
     
836 836
     protected static $utfBoms;
837 837
     
838
-   /**
839
-    * Retrieves a list of all UTF byte order mark character
840
-    * sequences, as an assocative array with UTF encoding => bom sequence
841
-    * pairs.
842
-    * 
843
-    * @return array
844
-    */
838
+    /**
839
+     * Retrieves a list of all UTF byte order mark character
840
+     * sequences, as an assocative array with UTF encoding => bom sequence
841
+     * pairs.
842
+     * 
843
+     * @return array
844
+     */
845 845
     public static function getUTFBOMs()
846 846
     {
847 847
         if(!isset(self::$utfBoms)) {
@@ -857,15 +857,15 @@  discard block
 block discarded – undo
857 857
         return self::$utfBoms;
858 858
     }
859 859
     
860
-   /**
861
-    * Checks whether the specified encoding is a valid
862
-    * unicode encoding, for example "UTF16-LE" or "UTF8".
863
-    * Also accounts for alternate way to write the, like
864
-    * "UTF-8", and omitting little/big endian suffixes.
865
-    * 
866
-    * @param string $encoding
867
-    * @return boolean
868
-    */
860
+    /**
861
+     * Checks whether the specified encoding is a valid
862
+     * unicode encoding, for example "UTF16-LE" or "UTF8".
863
+     * Also accounts for alternate way to write the, like
864
+     * "UTF-8", and omitting little/big endian suffixes.
865
+     * 
866
+     * @param string $encoding
867
+     * @return boolean
868
+     */
869 869
     public static function isValidUnicodeEncoding(string $encoding) : bool
870 870
     {
871 871
         $encodings = self::getKnownUnicodeEncodings();
@@ -884,40 +884,40 @@  discard block
 block discarded – undo
884 884
         return in_array($encoding, $keep);
885 885
     }
886 886
     
887
-   /**
888
-    * Retrieves a list of all known unicode file encodings.
889
-    * @return array
890
-    */
887
+    /**
888
+     * Retrieves a list of all known unicode file encodings.
889
+     * @return array
890
+     */
891 891
     public static function getKnownUnicodeEncodings()
892 892
     {
893 893
         return array_keys(self::getUTFBOMs());
894 894
     }
895 895
     
896
-   /**
897
-    * Normalizes the slash style in a file or folder path,
898
-    * by replacing any antislashes with forward slashes.
899
-    * 
900
-    * @param string $path
901
-    * @return string
902
-    */
896
+    /**
897
+     * Normalizes the slash style in a file or folder path,
898
+     * by replacing any antislashes with forward slashes.
899
+     * 
900
+     * @param string $path
901
+     * @return string
902
+     */
903 903
     public static function normalizePath(string $path) : string
904 904
     {
905 905
         return str_replace(array('\\', '//'), array('/', '/'), $path);
906 906
     }
907 907
     
908
-   /**
909
-    * Saves the specified data to a file, JSON encoded.
910
-    * 
911
-    * @param mixed $data
912
-    * @param string $file
913
-    * @param bool $pretty
914
-    * @throws FileHelper_Exception
915
-    * 
916
-    * @see FileHelper::ERROR_JSON_ENCODE_ERROR
917
-    * @see FileHelper::ERROR_SAVE_FOLDER_NOT_WRITABLE
918
-    * @see FileHelper::ERROR_SAVE_FILE_NOT_WRITABLE
919
-    * @see FileHelper::ERROR_SAVE_FILE_WRITE_FAILED
920
-    */
908
+    /**
909
+     * Saves the specified data to a file, JSON encoded.
910
+     * 
911
+     * @param mixed $data
912
+     * @param string $file
913
+     * @param bool $pretty
914
+     * @throws FileHelper_Exception
915
+     * 
916
+     * @see FileHelper::ERROR_JSON_ENCODE_ERROR
917
+     * @see FileHelper::ERROR_SAVE_FOLDER_NOT_WRITABLE
918
+     * @see FileHelper::ERROR_SAVE_FILE_NOT_WRITABLE
919
+     * @see FileHelper::ERROR_SAVE_FILE_WRITE_FAILED
920
+     */
921 921
     public static function saveAsJSON($data, string $file, bool $pretty=false)
922 922
     {
923 923
         $options = null;
@@ -941,18 +941,18 @@  discard block
 block discarded – undo
941 941
         self::saveFile($file, $json);
942 942
     }
943 943
    
944
-   /**
945
-    * Saves the specified content to the target file, creating
946
-    * the file and the folder as necessary.
947
-    * 
948
-    * @param string $filePath
949
-    * @param string $content
950
-    * @throws FileHelper_Exception
951
-    * 
952
-    * @see FileHelper::ERROR_SAVE_FOLDER_NOT_WRITABLE
953
-    * @see FileHelper::ERROR_SAVE_FILE_NOT_WRITABLE
954
-    * @see FileHelper::ERROR_SAVE_FILE_WRITE_FAILED
955
-    */
944
+    /**
945
+     * Saves the specified content to the target file, creating
946
+     * the file and the folder as necessary.
947
+     * 
948
+     * @param string $filePath
949
+     * @param string $content
950
+     * @throws FileHelper_Exception
951
+     * 
952
+     * @see FileHelper::ERROR_SAVE_FOLDER_NOT_WRITABLE
953
+     * @see FileHelper::ERROR_SAVE_FILE_NOT_WRITABLE
954
+     * @see FileHelper::ERROR_SAVE_FILE_WRITE_FAILED
955
+     */
956 956
     public static function saveFile(string $filePath, string $content='') : void
957 957
     {
958 958
         // target file already exists
@@ -1005,12 +1005,12 @@  discard block
 block discarded – undo
1005 1005
         );
1006 1006
     }
1007 1007
     
1008
-   /**
1009
-    * Checks whether it is possible to run PHP command 
1010
-    * line commands.
1011
-    * 
1012
-    * @return boolean
1013
-    */
1008
+    /**
1009
+     * Checks whether it is possible to run PHP command 
1010
+     * line commands.
1011
+     * 
1012
+     * @return boolean
1013
+     */
1014 1014
     public static function canMakePHPCalls() : bool
1015 1015
     {
1016 1016
         return self::cliCommandExists('php');
@@ -1087,16 +1087,16 @@  discard block
 block discarded – undo
1087 1087
         return $result;
1088 1088
     }
1089 1089
     
1090
-   /**
1091
-    * Validates a PHP file's syntax.
1092
-    * 
1093
-    * NOTE: This will fail silently if the PHP command line
1094
-    * is not available. Use {@link FileHelper::canMakePHPCalls()}
1095
-    * to check this beforehand as needed.
1096
-    * 
1097
-    * @param string $path
1098
-    * @return boolean|array A boolean true if the file is valid, an array with validation messages otherwise.
1099
-    */
1090
+    /**
1091
+     * Validates a PHP file's syntax.
1092
+     * 
1093
+     * NOTE: This will fail silently if the PHP command line
1094
+     * is not available. Use {@link FileHelper::canMakePHPCalls()}
1095
+     * to check this beforehand as needed.
1096
+     * 
1097
+     * @param string $path
1098
+     * @return boolean|array A boolean true if the file is valid, an array with validation messages otherwise.
1099
+     */
1100 1100
     public static function checkPHPFileSyntax($path)
1101 1101
     {
1102 1102
         if(!self::canMakePHPCalls()) {
@@ -1120,14 +1120,14 @@  discard block
 block discarded – undo
1120 1120
         return $output;
1121 1121
     }
1122 1122
     
1123
-   /**
1124
-    * Retrieves the last modified date for the specified file or folder.
1125
-    * 
1126
-    * Note: If the target does not exist, returns null. 
1127
-    * 
1128
-    * @param string $path
1129
-    * @return \DateTime|NULL
1130
-    */
1123
+    /**
1124
+     * Retrieves the last modified date for the specified file or folder.
1125
+     * 
1126
+     * Note: If the target does not exist, returns null. 
1127
+     * 
1128
+     * @param string $path
1129
+     * @return \DateTime|NULL
1130
+     */
1131 1131
     public static function getModifiedDate($path)
1132 1132
     {
1133 1133
         $time = filemtime($path);
@@ -1140,24 +1140,24 @@  discard block
 block discarded – undo
1140 1140
         return null; 
1141 1141
     }
1142 1142
     
1143
-   /**
1144
-    * Retrieves the names of all subfolders in the specified path.
1145
-    * 
1146
-    * Available options:
1147
-    * 
1148
-    * - recursive: true/false
1149
-    *   Whether to search for subfolders recursively. 
1150
-    *   
1151
-    * - absolute-paths: true/false
1152
-    *   Whether to return a list of absolute paths.
1153
-    * 
1154
-    * @param string $targetFolder
1155
-    * @param array $options
1156
-    * @throws FileHelper_Exception
1157
-    * @return string[]
1158
-    * 
1159
-    * @todo Move this to a separate class.
1160
-    */
1143
+    /**
1144
+     * Retrieves the names of all subfolders in the specified path.
1145
+     * 
1146
+     * Available options:
1147
+     * 
1148
+     * - recursive: true/false
1149
+     *   Whether to search for subfolders recursively. 
1150
+     *   
1151
+     * - absolute-paths: true/false
1152
+     *   Whether to return a list of absolute paths.
1153
+     * 
1154
+     * @param string $targetFolder
1155
+     * @param array $options
1156
+     * @throws FileHelper_Exception
1157
+     * @return string[]
1158
+     * 
1159
+     * @todo Move this to a separate class.
1160
+     */
1161 1161
     public static function getSubfolders($targetFolder, $options = array())
1162 1162
     {
1163 1163
         if(!is_dir($targetFolder)) 
@@ -1218,16 +1218,16 @@  discard block
 block discarded – undo
1218 1218
         return $result;
1219 1219
     }
1220 1220
 
1221
-   /**
1222
-    * Retrieves the maximum allowed upload file size, in bytes.
1223
-    * Takes into account the PHP ini settings <code>post_max_size</code>
1224
-    * and <code>upload_max_filesize</code>. Since these cannot
1225
-    * be modified at runtime, they are the hard limits for uploads.
1226
-    * 
1227
-    * NOTE: Based on binary values, where 1KB = 1024 Bytes.
1228
-    * 
1229
-    * @return int Will return <code>-1</code> if no limit.
1230
-    */
1221
+    /**
1222
+     * Retrieves the maximum allowed upload file size, in bytes.
1223
+     * Takes into account the PHP ini settings <code>post_max_size</code>
1224
+     * and <code>upload_max_filesize</code>. Since these cannot
1225
+     * be modified at runtime, they are the hard limits for uploads.
1226
+     * 
1227
+     * NOTE: Based on binary values, where 1KB = 1024 Bytes.
1228
+     * 
1229
+     * @return int Will return <code>-1</code> if no limit.
1230
+     */
1231 1231
     public static function getMaxUploadFilesize() : int
1232 1232
     {
1233 1233
         static $max_size = -1;
@@ -1265,16 +1265,16 @@  discard block
 block discarded – undo
1265 1265
         return round($size);
1266 1266
     }
1267 1267
    
1268
-   /**
1269
-    * Makes a path relative using a folder depth: will reduce the
1270
-    * length of the path so that only the amount of folders defined
1271
-    * in the <code>$depth</code> attribute are shown below the actual
1272
-    * folder or file in the path.
1273
-    *  
1274
-    * @param string  $path The absolute or relative path
1275
-    * @param int $depth The folder depth to reduce the path to
1276
-    * @return string
1277
-    */
1268
+    /**
1269
+     * Makes a path relative using a folder depth: will reduce the
1270
+     * length of the path so that only the amount of folders defined
1271
+     * in the <code>$depth</code> attribute are shown below the actual
1272
+     * folder or file in the path.
1273
+     *  
1274
+     * @param string  $path The absolute or relative path
1275
+     * @param int $depth The folder depth to reduce the path to
1276
+     * @return string
1277
+     */
1278 1278
     public static function relativizePathByDepth(string $path, int $depth=2) : string
1279 1279
     {
1280 1280
         $path = self::normalizePath($path);
@@ -1312,23 +1312,23 @@  discard block
 block discarded – undo
1312 1312
         return trim(implode('/', $tokens), '/');
1313 1313
     }
1314 1314
     
1315
-   /**
1316
-    * Makes the specified path relative to another path,
1317
-    * by removing one from the other if found. Also 
1318
-    * normalizes the path to use forward slashes. 
1319
-    * 
1320
-    * Example:
1321
-    * 
1322
-    * <pre>
1323
-    * relativizePath('c:\some\folder\to\file.txt', 'c:\some\folder');
1324
-    * </pre>
1325
-    * 
1326
-    * Result: <code>to/file.txt</code>
1327
-    * 
1328
-    * @param string $path
1329
-    * @param string $relativeTo
1330
-    * @return string
1331
-    */
1315
+    /**
1316
+     * Makes the specified path relative to another path,
1317
+     * by removing one from the other if found. Also 
1318
+     * normalizes the path to use forward slashes. 
1319
+     * 
1320
+     * Example:
1321
+     * 
1322
+     * <pre>
1323
+     * relativizePath('c:\some\folder\to\file.txt', 'c:\some\folder');
1324
+     * </pre>
1325
+     * 
1326
+     * Result: <code>to/file.txt</code>
1327
+     * 
1328
+     * @param string $path
1329
+     * @param string $relativeTo
1330
+     * @return string
1331
+     */
1332 1332
     public static function relativizePath(string $path, string $relativeTo) : string
1333 1333
     {
1334 1334
         $path = self::normalizePath($path);
@@ -1340,17 +1340,17 @@  discard block
 block discarded – undo
1340 1340
         return $relative;
1341 1341
     }
1342 1342
     
1343
-   /**
1344
-    * Checks that the target file exists, and throws an exception
1345
-    * if it does not. 
1346
-    * 
1347
-    * @param string $path
1348
-    * @param int|NULL $errorCode Optional custom error code
1349
-    * @throws FileHelper_Exception
1350
-    * @return string The real path to the file
1351
-    * 
1352
-    * @see FileHelper::ERROR_FILE_DOES_NOT_EXIST
1353
-    */
1343
+    /**
1344
+     * Checks that the target file exists, and throws an exception
1345
+     * if it does not. 
1346
+     * 
1347
+     * @param string $path
1348
+     * @param int|NULL $errorCode Optional custom error code
1349
+     * @throws FileHelper_Exception
1350
+     * @return string The real path to the file
1351
+     * 
1352
+     * @see FileHelper::ERROR_FILE_DOES_NOT_EXIST
1353
+     */
1354 1354
     public static function requireFileExists(string $path, $errorCode=null) : string
1355 1355
     {
1356 1356
         $result = realpath($path);
@@ -1369,18 +1369,18 @@  discard block
 block discarded – undo
1369 1369
         );
1370 1370
     }
1371 1371
     
1372
-   /**
1373
-    * Reads a specific line number from the target file and returns its
1374
-    * contents, if the file has such a line. Does so with little memory
1375
-    * usage, as the file is not read entirely into memory.
1376
-    * 
1377
-    * @param string $path
1378
-    * @param int $lineNumber Note: 1-based; the first line is number 1.
1379
-    * @return string|NULL Will return null if the requested line does not exist.
1380
-    * @throws FileHelper_Exception
1381
-    * 
1382
-    * @see FileHelper::ERROR_FILE_DOES_NOT_EXIST
1383
-    */
1372
+    /**
1373
+     * Reads a specific line number from the target file and returns its
1374
+     * contents, if the file has such a line. Does so with little memory
1375
+     * usage, as the file is not read entirely into memory.
1376
+     * 
1377
+     * @param string $path
1378
+     * @param int $lineNumber Note: 1-based; the first line is number 1.
1379
+     * @return string|NULL Will return null if the requested line does not exist.
1380
+     * @throws FileHelper_Exception
1381
+     * 
1382
+     * @see FileHelper::ERROR_FILE_DOES_NOT_EXIST
1383
+     */
1384 1384
     public static function getLineFromFile(string $path, int $lineNumber) : ?string
1385 1385
     {
1386 1386
         self::requireFileExists($path);
@@ -1396,19 +1396,19 @@  discard block
 block discarded – undo
1396 1396
         $file->seek($targetLine);
1397 1397
         
1398 1398
         if($file->key() !== $targetLine) {
1399
-             return null;
1399
+                return null;
1400 1400
         }
1401 1401
         
1402 1402
         return $file->current(); 
1403 1403
     }
1404 1404
     
1405
-   /**
1406
-    * Retrieves the total amount of lines in the file, without 
1407
-    * reading the whole file into memory.
1408
-    * 
1409
-    * @param string $path
1410
-    * @return int
1411
-    */
1405
+    /**
1406
+     * Retrieves the total amount of lines in the file, without 
1407
+     * reading the whole file into memory.
1408
+     * 
1409
+     * @param string $path
1410
+     * @return int
1411
+     */
1412 1412
     public static function countFileLines(string $path) : int
1413 1413
     {
1414 1414
         self::requireFileExists($path);
@@ -1438,26 +1438,26 @@  discard block
 block discarded – undo
1438 1438
         return $number+1;
1439 1439
     }
1440 1440
     
1441
-   /**
1442
-    * Parses the target file to detect any PHP classes contained
1443
-    * within, and retrieve information on them. Does not use the 
1444
-    * PHP reflection API.
1445
-    * 
1446
-    * @param string $filePath
1447
-    * @return FileHelper_PHPClassInfo
1448
-    */
1441
+    /**
1442
+     * Parses the target file to detect any PHP classes contained
1443
+     * within, and retrieve information on them. Does not use the 
1444
+     * PHP reflection API.
1445
+     * 
1446
+     * @param string $filePath
1447
+     * @return FileHelper_PHPClassInfo
1448
+     */
1449 1449
     public static function findPHPClasses(string $filePath) : FileHelper_PHPClassInfo
1450 1450
     {
1451 1451
         return new FileHelper_PHPClassInfo($filePath);
1452 1452
     }
1453 1453
     
1454
-   /**
1455
-    * Detects the end of line style used in the target file, if any.
1456
-    * Can be used with large files, because it only reads part of it.
1457
-    * 
1458
-    * @param string $filePath The path to the file.
1459
-    * @return NULL|ConvertHelper_EOL The end of line character information, or NULL if none is found.
1460
-    */
1454
+    /**
1455
+     * Detects the end of line style used in the target file, if any.
1456
+     * Can be used with large files, because it only reads part of it.
1457
+     * 
1458
+     * @param string $filePath The path to the file.
1459
+     * @return NULL|ConvertHelper_EOL The end of line character information, or NULL if none is found.
1460
+     */
1461 1461
     public static function detectEOLCharacter(string $filePath) : ?ConvertHelper_EOL
1462 1462
     {
1463 1463
         // 20 lines is enough to get a good picture of the newline style in the file.
@@ -1470,18 +1470,18 @@  discard block
 block discarded – undo
1470 1470
         return ConvertHelper::detectEOLCharacter($string);
1471 1471
     }
1472 1472
     
1473
-   /**
1474
-    * Reads the specified amount of lines from the target file.
1475
-    * Unicode BOM compatible: any byte order marker is stripped
1476
-    * from the resulting lines.
1477
-    * 
1478
-    * @param string $filePath
1479
-    * @param int $amount Set to 0 to read all lines.
1480
-    * @return array
1481
-    * 
1482
-    * @see FileHelper::ERROR_CANNOT_OPEN_FILE_TO_READ_LINES
1483
-    * @see FileHelper::ERROR_FILE_DOES_NOT_EXIST
1484
-    */
1473
+    /**
1474
+     * Reads the specified amount of lines from the target file.
1475
+     * Unicode BOM compatible: any byte order marker is stripped
1476
+     * from the resulting lines.
1477
+     * 
1478
+     * @param string $filePath
1479
+     * @param int $amount Set to 0 to read all lines.
1480
+     * @return array
1481
+     * 
1482
+     * @see FileHelper::ERROR_CANNOT_OPEN_FILE_TO_READ_LINES
1483
+     * @see FileHelper::ERROR_FILE_DOES_NOT_EXIST
1484
+     */
1485 1485
     public static function readLines(string $filePath, int $amount=0) : array
1486 1486
     {
1487 1487
         self::requireFileExists($filePath);
@@ -1534,16 +1534,16 @@  discard block
 block discarded – undo
1534 1534
         return $result;
1535 1535
     }
1536 1536
     
1537
-   /**
1538
-    * Reads all content from a file.
1539
-    * 
1540
-    * @param string $filePath
1541
-    * @throws FileHelper_Exception
1542
-    * @return string
1543
-    * 
1544
-    * @see FileHelper::ERROR_FILE_DOES_NOT_EXIST
1545
-    * @see FileHelper::ERROR_CANNOT_READ_FILE_CONTENTS
1546
-    */
1537
+    /**
1538
+     * Reads all content from a file.
1539
+     * 
1540
+     * @param string $filePath
1541
+     * @throws FileHelper_Exception
1542
+     * @return string
1543
+     * 
1544
+     * @see FileHelper::ERROR_FILE_DOES_NOT_EXIST
1545
+     * @see FileHelper::ERROR_CANNOT_READ_FILE_CONTENTS
1546
+     */
1547 1547
     public static function readContents(string $filePath) : string
1548 1548
     {
1549 1549
         self::requireFileExists($filePath);
@@ -1564,18 +1564,18 @@  discard block
 block discarded – undo
1564 1564
         );
1565 1565
     }
1566 1566
 
1567
-   /**
1568
-    * Ensures that the target path exists on disk, and is a folder.
1569
-    * 
1570
-    * @param string $path
1571
-    * @return string The real path, with normalized slashes.
1572
-    * @throws FileHelper_Exception
1573
-    * 
1574
-    * @see FileHelper::normalizePath()
1575
-    * 
1576
-    * @see FileHelper::ERROR_FOLDER_DOES_NOT_EXIST
1577
-    * @see FileHelper::ERROR_PATH_IS_NOT_A_FOLDER
1578
-    */
1567
+    /**
1568
+     * Ensures that the target path exists on disk, and is a folder.
1569
+     * 
1570
+     * @param string $path
1571
+     * @return string The real path, with normalized slashes.
1572
+     * @throws FileHelper_Exception
1573
+     * 
1574
+     * @see FileHelper::normalizePath()
1575
+     * 
1576
+     * @see FileHelper::ERROR_FOLDER_DOES_NOT_EXIST
1577
+     * @see FileHelper::ERROR_PATH_IS_NOT_A_FOLDER
1578
+     */
1579 1579
     public static function requireFolderExists(string $path) : string
1580 1580
     {
1581 1581
         $actual = realpath($path);
Please login to merge, or discard this patch.