baseDir)) { return; } $directoryIterator = new RecursiveIteratorIterator( new RecursiveDirectoryIterator( $this->baseDir, RecursiveDirectoryIterator::CURRENT_AS_FILEINFO | RecursiveDirectoryIterator::KEY_AS_PATHNAME | RecursiveDirectoryIterator::SKIP_DOTS ), RecursiveIteratorIterator::CHILD_FIRST ); foreach ($directoryIterator as $path => $entry) { /** @var \SplFileInfo $entry */ if ($entry->isDir() && ! $entry->isLink()) { rmdir($path); } else { unlink($path); } } rmdir($this->baseDir); } }