protected function removeDirectory($dirname)
{
if (!file_exists($dirname) || !is_dir($dirname)) {
return;
}
$directory = new \RecursiveDirectoryIterator($dirname, RecursiveDirectoryIterator::SKIP_DOTS);
/** @var \SplFileObject[] $iterator */
$iterator = new \RecursiveIteratorIterator($directory, RecursiveIteratorIterator::CHILD_FIRST);
foreach ($iterator as $file) {
if ($file->isDir()) {
rmdir($file->getRealPath());
} else {
unlink($file->getRealPath());
}
}
rmdir($dirname);
}