@@ -78,32 +78,32 @@ discard block |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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); |
@@ -114,18 +114,18 @@ discard block |
||
114 | 114 | } |
115 | 115 | } |
116 | 116 | |
117 | - /** |
|
118 | - * Adds a callback as a validation method. The callback gets the |
|
119 | - * value to validate as first parameter, and any additional |
|
120 | - * parameters passed here get appended to that. |
|
121 | - * |
|
122 | - * The callback must return boolean true or false depending on |
|
123 | - * whether the value is valid. |
|
124 | - * |
|
125 | - * @param callable $callback |
|
126 | - * @param array $args |
|
127 | - * @return Request_Param |
|
128 | - */ |
|
117 | + /** |
|
118 | + * Adds a callback as a validation method. The callback gets the |
|
119 | + * value to validate as first parameter, and any additional |
|
120 | + * parameters passed here get appended to that. |
|
121 | + * |
|
122 | + * The callback must return boolean true or false depending on |
|
123 | + * whether the value is valid. |
|
124 | + * |
|
125 | + * @param callable $callback |
|
126 | + * @param array $args |
|
127 | + * @return Request_Param |
|
128 | + */ |
|
129 | 129 | public function setCallback($callback, array $args=array()) : Request_Param |
130 | 130 | { |
131 | 131 | if(!is_callable($callback)) { |
@@ -189,12 +189,12 @@ discard block |
||
189 | 189 | return $value; |
190 | 190 | } |
191 | 191 | |
192 | - /** |
|
193 | - * Runs the value through all validations that were added. |
|
194 | - * |
|
195 | - * @param mixed $value |
|
196 | - * @return mixed |
|
197 | - */ |
|
192 | + /** |
|
193 | + * Runs the value through all validations that were added. |
|
194 | + * |
|
195 | + * @param mixed $value |
|
196 | + * @return mixed |
|
197 | + */ |
|
198 | 198 | protected function applyValidations($value, bool $subval=false) |
199 | 199 | { |
200 | 200 | // go through all enqueued validations in turn, each time |
@@ -207,17 +207,17 @@ discard block |
||
207 | 207 | return $value; |
208 | 208 | } |
209 | 209 | |
210 | - /** |
|
211 | - * Validates the specified value using the validation type. Returns |
|
212 | - * the validated value. |
|
213 | - * |
|
214 | - * @param mixed $value |
|
215 | - * @param string $type |
|
216 | - * @param array $params |
|
217 | - * @param bool $subval Whether this is a subvalue in a list |
|
218 | - * @throws Request_Exception |
|
219 | - * @return mixed |
|
220 | - */ |
|
210 | + /** |
|
211 | + * Validates the specified value using the validation type. Returns |
|
212 | + * the validated value. |
|
213 | + * |
|
214 | + * @param mixed $value |
|
215 | + * @param string $type |
|
216 | + * @param array $params |
|
217 | + * @param bool $subval Whether this is a subvalue in a list |
|
218 | + * @throws Request_Exception |
|
219 | + * @return mixed |
|
220 | + */ |
|
221 | 221 | protected function validateType($value, string $type, array $params, bool $subval) |
222 | 222 | { |
223 | 223 | $class = '\AppUtils\Request_Param_Validator_'.ucfirst($type); |
@@ -286,13 +286,13 @@ discard block |
||
286 | 286 | |
287 | 287 | protected $valueType = self::VALUE_TYPE_STRING; |
288 | 288 | |
289 | - /** |
|
290 | - * Sets the variable to contain a comma-separated list of integer IDs. |
|
291 | - * Example: <code>145,248,4556</code>. A single ID is also allowed, e.g. |
|
292 | - * <code>145</code>. |
|
293 | - * |
|
294 | - * @return Request_Param |
|
295 | - */ |
|
289 | + /** |
|
290 | + * Sets the variable to contain a comma-separated list of integer IDs. |
|
291 | + * Example: <code>145,248,4556</code>. A single ID is also allowed, e.g. |
|
292 | + * <code>145</code>. |
|
293 | + * |
|
294 | + * @return Request_Param |
|
295 | + */ |
|
296 | 296 | public function setIDList() |
297 | 297 | { |
298 | 298 | $this->valueType = self::VALUE_TYPE_LIST; |
@@ -302,13 +302,13 @@ discard block |
||
302 | 302 | return $this; |
303 | 303 | } |
304 | 304 | |
305 | - /** |
|
306 | - * Sets the variable to be an alias, as defined by the |
|
307 | - * {@link RegexHelper::REGEX_ALIAS} regular expression. |
|
308 | - * |
|
309 | - * @return Request_Param |
|
310 | - * @see RegexHelper::REGEX_ALIAS |
|
311 | - */ |
|
305 | + /** |
|
306 | + * Sets the variable to be an alias, as defined by the |
|
307 | + * {@link RegexHelper::REGEX_ALIAS} regular expression. |
|
308 | + * |
|
309 | + * @return Request_Param |
|
310 | + * @see RegexHelper::REGEX_ALIAS |
|
311 | + */ |
|
312 | 312 | public function setAlias() |
313 | 313 | { |
314 | 314 | return $this->setRegex(RegexHelper::REGEX_ALIAS); |
@@ -349,12 +349,12 @@ discard block |
||
349 | 349 | return $this->setValidation(self::VALIDATION_TYPE_ALPHA); |
350 | 350 | } |
351 | 351 | |
352 | - /** |
|
353 | - * Sets the parameter value as a string containing lowercase |
|
354 | - * and/or uppercase letters, as well as numbers. |
|
355 | - * |
|
356 | - * @return Request_Param |
|
357 | - */ |
|
352 | + /** |
|
353 | + * Sets the parameter value as a string containing lowercase |
|
354 | + * and/or uppercase letters, as well as numbers. |
|
355 | + * |
|
356 | + * @return Request_Param |
|
357 | + */ |
|
358 | 358 | public function setAlnum() |
359 | 359 | { |
360 | 360 | return $this->setValidation(self::VALIDATION_TYPE_ALNUM); |
@@ -387,17 +387,17 @@ discard block |
||
387 | 387 | ); |
388 | 388 | } |
389 | 389 | |
390 | - /** |
|
391 | - * Only available for array values: the parameter must be |
|
392 | - * an array value, and the array may only contain values |
|
393 | - * specified in the values array. |
|
394 | - * |
|
395 | - * Submitted values that are not in the allowed list of |
|
396 | - * values are stripped from the value. |
|
397 | - * |
|
398 | - * @param array $values List of allowed values |
|
399 | - * @return \AppUtils\Request_Param |
|
400 | - */ |
|
390 | + /** |
|
391 | + * Only available for array values: the parameter must be |
|
392 | + * an array value, and the array may only contain values |
|
393 | + * specified in the values array. |
|
394 | + * |
|
395 | + * Submitted values that are not in the allowed list of |
|
396 | + * values are stripped from the value. |
|
397 | + * |
|
398 | + * @param array $values List of allowed values |
|
399 | + * @return \AppUtils\Request_Param |
|
400 | + */ |
|
401 | 401 | public function setValuesList(array $values) |
402 | 402 | { |
403 | 403 | $this->setArray(); |
@@ -410,11 +410,11 @@ discard block |
||
410 | 410 | ); |
411 | 411 | } |
412 | 412 | |
413 | - /** |
|
414 | - * Whether the parameter is a list of values. |
|
415 | - * |
|
416 | - * @return bool |
|
417 | - */ |
|
413 | + /** |
|
414 | + * Whether the parameter is a list of values. |
|
415 | + * |
|
416 | + * @return bool |
|
417 | + */ |
|
418 | 418 | public function isList() : bool |
419 | 419 | { |
420 | 420 | return $this->valueType === self::VALUE_TYPE_LIST; |
@@ -425,53 +425,53 @@ discard block |
||
425 | 425 | return $this->setValidation(self::VALIDATION_TYPE_ARRAY); |
426 | 426 | } |
427 | 427 | |
428 | - /** |
|
429 | - * Specifies that a JSON-encoded string is expected. |
|
430 | - * |
|
431 | - * NOTE: Numbers or quoted strings are technically valid |
|
432 | - * JSON, but are not accepted, because it is assumed |
|
433 | - * at least an array or object are expected. |
|
434 | - * |
|
435 | - * @return \AppUtils\Request_Param |
|
436 | - */ |
|
428 | + /** |
|
429 | + * Specifies that a JSON-encoded string is expected. |
|
430 | + * |
|
431 | + * NOTE: Numbers or quoted strings are technically valid |
|
432 | + * JSON, but are not accepted, because it is assumed |
|
433 | + * at least an array or object are expected. |
|
434 | + * |
|
435 | + * @return \AppUtils\Request_Param |
|
436 | + */ |
|
437 | 437 | public function setJSON() : Request_Param |
438 | 438 | { |
439 | 439 | return $this->setValidation(self::VALIDATION_TYPE_JSON, array('arrays' => true)); |
440 | 440 | } |
441 | 441 | |
442 | - /** |
|
443 | - * Like {@link Request_Param::setJSON()}, but accepts |
|
444 | - * only JSON objects. Arrays will not be accepted. |
|
445 | - * |
|
446 | - * @return \AppUtils\Request_Param |
|
447 | - */ |
|
442 | + /** |
|
443 | + * Like {@link Request_Param::setJSON()}, but accepts |
|
444 | + * only JSON objects. Arrays will not be accepted. |
|
445 | + * |
|
446 | + * @return \AppUtils\Request_Param |
|
447 | + */ |
|
448 | 448 | public function setJSONObject() : Request_Param |
449 | 449 | { |
450 | 450 | return $this->setValidation(self::VALIDATION_TYPE_JSON, array('arrays' => false)); |
451 | 451 | } |
452 | 452 | |
453 | - /** |
|
454 | - * The parameter is a string boolean representation. This means |
|
455 | - * it can be any of the following: "yes", "true", "no", "false". |
|
456 | - * The value is automatically converted to a boolean when retrieving |
|
457 | - * the parameter. |
|
458 | - * |
|
459 | - * @return Request_Param |
|
460 | - */ |
|
453 | + /** |
|
454 | + * The parameter is a string boolean representation. This means |
|
455 | + * it can be any of the following: "yes", "true", "no", "false". |
|
456 | + * The value is automatically converted to a boolean when retrieving |
|
457 | + * the parameter. |
|
458 | + * |
|
459 | + * @return Request_Param |
|
460 | + */ |
|
461 | 461 | public function setBoolean() : Request_Param |
462 | 462 | { |
463 | 463 | return $this->addClassFilter('Boolean'); |
464 | 464 | } |
465 | 465 | |
466 | - /** |
|
467 | - * Validates the request parameter as an MD5 string, |
|
468 | - * so that only values resembling md5 values are accepted. |
|
469 | - * |
|
470 | - * NOTE: This can only guarantee the format, not whether |
|
471 | - * it is an actual valid hash of something. |
|
472 | - * |
|
473 | - * @return \AppUtils\Request_Param |
|
474 | - */ |
|
466 | + /** |
|
467 | + * Validates the request parameter as an MD5 string, |
|
468 | + * so that only values resembling md5 values are accepted. |
|
469 | + * |
|
470 | + * NOTE: This can only guarantee the format, not whether |
|
471 | + * it is an actual valid hash of something. |
|
472 | + * |
|
473 | + * @return \AppUtils\Request_Param |
|
474 | + */ |
|
475 | 475 | public function setMD5() : Request_Param |
476 | 476 | { |
477 | 477 | return $this->setRegex(RegexHelper::REGEX_MD5); |
@@ -513,14 +513,14 @@ discard block |
||
513 | 513 | return $this; |
514 | 514 | } |
515 | 515 | |
516 | - /** |
|
517 | - * Retrieves the value of the request parameter, |
|
518 | - * applying all filters (if any) and validation |
|
519 | - * (if any). |
|
520 | - * |
|
521 | - * @param mixed $default |
|
522 | - * @return mixed |
|
523 | - */ |
|
516 | + /** |
|
517 | + * Retrieves the value of the request parameter, |
|
518 | + * applying all filters (if any) and validation |
|
519 | + * (if any). |
|
520 | + * |
|
521 | + * @param mixed $default |
|
522 | + * @return mixed |
|
523 | + */ |
|
524 | 524 | public function get($default=null) |
525 | 525 | { |
526 | 526 | $value = $this->request->getParam($this->paramName); |
@@ -608,12 +608,12 @@ discard block |
||
608 | 608 | return $this; |
609 | 609 | } |
610 | 610 | |
611 | - /** |
|
612 | - * Adds a filter that trims whitespace from the request |
|
613 | - * parameter using the PHP <code>trim</code> function. |
|
614 | - * |
|
615 | - * @return \AppUtils\Request_Param |
|
616 | - */ |
|
611 | + /** |
|
612 | + * Adds a filter that trims whitespace from the request |
|
613 | + * parameter using the PHP <code>trim</code> function. |
|
614 | + * |
|
615 | + * @return \AppUtils\Request_Param |
|
616 | + */ |
|
617 | 617 | public function addFilterTrim() : Request_Param |
618 | 618 | { |
619 | 619 | // to guarantee we only work with strings |
@@ -622,13 +622,13 @@ discard block |
||
622 | 622 | return $this->addCallbackFilter('trim'); |
623 | 623 | } |
624 | 624 | |
625 | - /** |
|
626 | - * Converts the value to a string, even if it is not |
|
627 | - * a string value. Complex types like arrays and objects |
|
628 | - * are converted to an empty string. |
|
629 | - * |
|
630 | - * @return \AppUtils\Request_Param |
|
631 | - */ |
|
625 | + /** |
|
626 | + * Converts the value to a string, even if it is not |
|
627 | + * a string value. Complex types like arrays and objects |
|
628 | + * are converted to an empty string. |
|
629 | + * |
|
630 | + * @return \AppUtils\Request_Param |
|
631 | + */ |
|
632 | 632 | public function addStringFilter() : Request_Param |
633 | 633 | { |
634 | 634 | return $this->addClassFilter('String'); |
@@ -678,12 +678,12 @@ discard block |
||
678 | 678 | return $this->addCallbackFilter('strip_tags', array($allowedTags)); |
679 | 679 | } |
680 | 680 | |
681 | - /** |
|
682 | - * Adds a filter that strips all whitespace from the |
|
683 | - * request parameter, from spaces to tabs and newlines. |
|
684 | - * |
|
685 | - * @return \AppUtils\Request_Param |
|
686 | - */ |
|
681 | + /** |
|
682 | + * Adds a filter that strips all whitespace from the |
|
683 | + * request parameter, from spaces to tabs and newlines. |
|
684 | + * |
|
685 | + * @return \AppUtils\Request_Param |
|
686 | + */ |
|
687 | 687 | public function addStripWhitespaceFilter() : Request_Param |
688 | 688 | { |
689 | 689 | // to ensure we only work with strings. |
@@ -692,14 +692,14 @@ discard block |
||
692 | 692 | return $this->addClassFilter('StripWhitespace'); |
693 | 693 | } |
694 | 694 | |
695 | - /** |
|
696 | - * Adds a filter that transforms comma separated values |
|
697 | - * into an array of values. |
|
698 | - * |
|
699 | - * @param bool $trimEntries Trim whitespace from each entry? |
|
700 | - * @param bool $stripEmptyEntries Remove empty entries from the array? |
|
701 | - * @return \AppUtils\Request_Param |
|
702 | - */ |
|
695 | + /** |
|
696 | + * Adds a filter that transforms comma separated values |
|
697 | + * into an array of values. |
|
698 | + * |
|
699 | + * @param bool $trimEntries Trim whitespace from each entry? |
|
700 | + * @param bool $stripEmptyEntries Remove empty entries from the array? |
|
701 | + * @return \AppUtils\Request_Param |
|
702 | + */ |
|
703 | 703 | public function addCommaSeparatedFilter(bool $trimEntries=true, bool $stripEmptyEntries=true) : Request_Param |
704 | 704 | { |
705 | 705 | $this->setArray(); |
@@ -724,12 +724,12 @@ discard block |
||
724 | 724 | ); |
725 | 725 | } |
726 | 726 | |
727 | - /** |
|
728 | - * Adds a filter that encodes all HTML special characters |
|
729 | - * using the PHP <code>htmlspecialchars</code> function. |
|
730 | - * |
|
731 | - * @return \AppUtils\Request_Param |
|
732 | - */ |
|
727 | + /** |
|
728 | + * Adds a filter that encodes all HTML special characters |
|
729 | + * using the PHP <code>htmlspecialchars</code> function. |
|
730 | + * |
|
731 | + * @return \AppUtils\Request_Param |
|
732 | + */ |
|
733 | 733 | public function addHTMLSpecialcharsFilter() : Request_Param |
734 | 734 | { |
735 | 735 | return $this->addCallbackFilter('htmlspecialchars', array(ENT_QUOTES, 'UTF-8')); |
@@ -742,14 +742,14 @@ discard block |
||
742 | 742 | |
743 | 743 | protected $required = false; |
744 | 744 | |
745 | - /** |
|
746 | - * Marks this request parameter as required. To use this feature, |
|
747 | - * you have to call the request's {@link Request::validate()} |
|
748 | - * method. |
|
749 | - * |
|
750 | - * @return Request_Param |
|
751 | - * @see Request::validate() |
|
752 | - */ |
|
745 | + /** |
|
746 | + * Marks this request parameter as required. To use this feature, |
|
747 | + * you have to call the request's {@link Request::validate()} |
|
748 | + * method. |
|
749 | + * |
|
750 | + * @return Request_Param |
|
751 | + * @see Request::validate() |
|
752 | + */ |
|
753 | 753 | public function makeRequired() : Request_Param |
754 | 754 | { |
755 | 755 | $this->required = true; |
@@ -27,14 +27,14 @@ |
||
27 | 27 | */ |
28 | 28 | protected $param; |
29 | 29 | |
30 | - /** |
|
31 | - * @var mixed |
|
32 | - */ |
|
30 | + /** |
|
31 | + * @var mixed |
|
32 | + */ |
|
33 | 33 | protected $value; |
34 | 34 | |
35 | - /** |
|
36 | - * @var bool |
|
37 | - */ |
|
35 | + /** |
|
36 | + * @var bool |
|
37 | + */ |
|
38 | 38 | protected $isSubvalue = false; |
39 | 39 | |
40 | 40 | public function __construct(Request_Param $param, bool $subval) |