Microweber\Providers\TemplateManager::directory_map PHP Method

directory_map() private method

Reads the specified directory and builds an array representation of it. Sub-folders contained with the directory will be mapped as well.
Author: ExpressionEngine Dev Team
private directory_map ( $source_dir, $directory_depth, $hidden = false, $full_path = false ) : array
return array
    private function directory_map($source_dir, $directory_depth = 0, $hidden = false, $full_path = false)
    {
        if ($fp = @opendir($source_dir)) {
            $filedata = array();
            $new_depth = $directory_depth - 1;
            $source_dir = rtrim($source_dir, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
            while (false !== ($file = readdir($fp))) {
                // Remove '.', '..', and hidden files [optional]
                if (!trim($file, '.') or $hidden == false && $file[0] == '.') {
                    continue;
                }
                if (($directory_depth < 1 or $new_depth > 0) && @is_dir($source_dir . $file)) {
                    $filedata[$file] = $this->directory_map($source_dir . $file . DIRECTORY_SEPARATOR, $new_depth, $hidden, $full_path);
                } else {
                    if ($full_path == false) {
                        $filedata[] = $file;
                    } else {
                        $filedata[] = $source_dir . $file;
                    }
                }
            }
            closedir($fp);
            return $filedata;
        }
        return false;
    }