public static function cleanDirectory($dir)
{
$iterator = new \DirectoryIterator($dir);
foreach ($iterator as $entry) {
/** @var $entry \DirectoryIterator */
if ($entry->isDot() || $entry->getBasename() == 'tests') {
continue;
}
if ($entry->isDir() && !$entry->isLink()) {
self::cleanDirectory($entry->getPathname());
rmdir($entry->getPathname());
} else {
if (is_writable($dir)) {
unlink($entry->getPathname());
}
}
}
}