public static function removeDirectory($directory) { if (self::exists($directory)) { $dir = new self($directory); $dir->scan(); $files = $dir->getFiles(); foreach ($files as $file) { $file->remove(); } $dirs = $dir->getDirectories(); foreach ($dirs as $dir) { self::removeDirectory($dir); } return rmdir($directory); } }
/** * Got new status, delegate to subscanner. * * If the status returns a new status object, a new scanner is created to handle it. * * @param Scanner\Token[] $target * @param Scanner\Status $status * @return Scanner */ private function _delegate(&$target, $status) { $scanner = new self($status); return $scanner->scan($target, $this->_buffer, $this->_offset); }