X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fio%2Fclass_FrameworkDirectoryPointer.php;h=253463cf30ec9bdfb8c810373c616cc6b0e69ef4;hp=5a3cb5eacfd987b3ed957e13f1af1c632cfb18b1;hb=70cb8ef9a893f8676290c77b0b83d53363b6914c;hpb=607a11e2c22949ea0647568c17d62a605595e83b diff --git a/inc/classes/main/io/class_FrameworkDirectoryPointer.php b/inc/classes/main/io/class_FrameworkDirectoryPointer.php index 5a3cb5ea..253463cf 100644 --- a/inc/classes/main/io/class_FrameworkDirectoryPointer.php +++ b/inc/classes/main/io/class_FrameworkDirectoryPointer.php @@ -59,48 +59,41 @@ class FrameworkDirectoryPointer extends BaseFrameworkSystem { * be verified here. * * @param $pathName The path name we shall pass to opendir() - * @param $inConstructor If we are in de/con-structor or from somewhere - * else - * @return $pointerInstance A prepared instance of - * FrameworkDirectoryPointer - * @throws PathIsEmptyException If the provided path name - * is empty - * @throws InvalidPathStringException If the provided path name is - * not a string - * @throws PathIsNoDirectoryException If the provided path name is - * not valid - * @throws PathReadProtectedException If the provided path name is - * read-protected - * @throws DirPointerNotOpened If opendir() returns not a - * directory resource + * @param $inConstructor If we are in de/con-structor or from somewhere else + * @return $pointerInstance A prepared instance of FrameworkDirectoryPointer + * @throws PathIsEmptyException If the provided path name is empty + * @throws InvalidPathStringException If the provided path name is not a string + * @throws PathIsNoDirectoryException If the provided path name is not valid + * @throws PathReadProtectedException If the provided path name is read-protected + * @throws DirPointerNotOpenedException If opendir() returns not a directory resource */ public static final function createFrameworkDirectoryPointer ($pathName, $inConstructor = false) { // Some pre-sanity checks... if (is_null($pathName)) { // No pathname given if ($inConstructor) { - return null; + return NULL; } else { throw new PathIsEmptyException(null, self::EXCEPTION_UNEXPECTED_EMPTY_STRING); } } elseif (!is_string($pathName)) { // Is not a string if ($inConstructor) { - return null; + return NULL; } else { throw new InvalidPathStringException(null, self::EXCEPTION_INVALID_STRING); } } elseif (!is_dir($pathName)) { // Not a directory if ($inConstructor) { - return null; + return NULL; } else { throw new PathIsNoDirectoryException($pathName, self::EXCEPTION_INVALID_PATH_NAME); } } elseif (!is_readable($pathName)) { // Not readable if ($inConstructor) { - return null; + return NULL; } else { throw new PathReadProtectedException($pathName, self::EXCEPTION_READ_PROTECED_PATH); } @@ -111,7 +104,7 @@ class FrameworkDirectoryPointer extends BaseFrameworkSystem { if (!is_resource($dirPointer)) { // Something bad happend if ($inConstructor) { - return null; + return NULL; } else { throw new DirPointerNotOpenedException($pathName, self::EXCEPTION_DIR_POINTER_INVALID); } @@ -131,8 +124,7 @@ class FrameworkDirectoryPointer extends BaseFrameworkSystem { /** * Read raw lines of data from a directory pointer and return the data * - * @return string Directory and/or file names read from the current - * directory pointer + * @return string Directory and/or file names read from the current directory pointer */ public function readRawDirectory () { // Read data from the directory pointer and return it @@ -142,32 +134,33 @@ class FrameworkDirectoryPointer extends BaseFrameworkSystem { /** * Read lines from the current directory pointer except some parts * - * @param $except Some parts of a directory we want to ignore. - * Valid: dirs - * Other values will be silently ignored - * @return string Directory and/or file names read from the current - * directory pointer + * @param $except Some parts of a directory we want to ignore. Valid: directory and file names, other values will be silently ignored + * @return string Directory and/or file names read from the current directory pointer */ - public function readDirectoryExcept ($except = '') { - if ((empty($except)) || (!is_array($except)) || (count($except) == 0)) { + public function readDirectoryExcept (array $except = array('.', '..')) { + if (count($except) == 0) { // No exception given, so read all data + $this->debugOutput('DIRECTORY: No exceptions given, please use readRawDirectory() instead!'); return $this->readRawDirectory(); - } + } // END - if // Read a raw line... $rawLine = $this->readRawDirectory(); // Shall we exclude directories? - if ((!is_null($rawLine)) && ($rawLine !== false) && (in_array($rawLine, $except))) { - // Exclude this part - return $this->readDirectoryExcept($except); - } elseif ((!is_null($rawLine)) && ($rawLine !== false)) { + if ((!is_null($rawLine)) && ($rawLine !== false) && (!in_array($rawLine, $except))) { // Return read data + /* NOISY-DEBUG: */ $this->debugOutput('DIRECTORY: rawLine[' . gettype($rawLine) . ']=' . $rawLine); return $rawLine; + } elseif ((!is_null($rawLine)) && ($rawLine !== false)) { + // Exclude this part + /* NOISY-DEBUG: */ $this->debugOutput('DIRECTORY: rawline[' . gettype($rawLine) . ']=' . $rawLine . ' - Recursive call!'); + return $this->readDirectoryExcept($except); } // End pointer reached - return null; + /* NOISY-DEBUG: */ $this->debugOutput('DIRECTORY: Returning NULL!'); + return NULL; } /** @@ -186,7 +179,7 @@ class FrameworkDirectoryPointer extends BaseFrameworkSystem { /** * Setter for the directory pointer * - * @param $dirPointer The directory resource + * @param $dirPointer The directory resource * @return void */ public final function setPointer ($dirPointer) { @@ -203,8 +196,7 @@ class FrameworkDirectoryPointer extends BaseFrameworkSystem { /** * Getter for the directory pointer * - * @return $dirPointer The directory pointer which shall be a valid - * directory resource + * @return $dirPointer The directory pointer which shall be a valid directory resource */ public final function getPointer () { return $this->dirPointer; @@ -213,7 +205,7 @@ class FrameworkDirectoryPointer extends BaseFrameworkSystem { /** * Setter for path name * - * @param $pathName The new path name + * @param $pathName The new path name * @return void */ public final function setPathName ($pathName) { @@ -224,7 +216,7 @@ class FrameworkDirectoryPointer extends BaseFrameworkSystem { /** * Getter for path name * - * @return $pathName The current path name + * @return $pathName The current path name */ public final function getPathName () { return $this->pathName;