*/ private $ignore = ['.', '..']; public function addIgnore(string $name): void { $this->ignore [] = $name; } private function addDirDo(string $location, string $name): void { $name .= '/'; $location .= '/'; $file = null; // Read all Files in Dir $dir = opendir($location); while (($file = readdir($dir)) !== false) { if (in_array($file, $this->ignore)) continue; // Rekursiv, If dir: FlxZipArchive::addDir(), else ::File(); $call = (is_dir($location . $file)) ? 'addDir' : 'addFile'; call_user_func([$this, $call], $location . $file, $name . $file); } } public function addDir(string $location, string $name): void { $this->addEmptyDir($name); $this->addDirDo($location, $name); } }