public static function updateFiles($source, $dest, $isRoot = false) { if ($isRoot) { self::$_defaultDirectoryPermission = fileperms($dest); } // Clearing if (is_dir($source)) { $dirResource = opendir($dest); while ($file = readdir($dirResource)) { if ($file == "." || $file == ".." || $isRoot && in_array($file, self::$_excludeUpdateFiles)) { continue; } $sourceObject = $source . '/' . $file; if (!is_file($sourceObject) && !is_dir($sourceObject)) { $destObject = $dest . '/' . $file; MagentoDebugger::removeDirectory($destObject); } } closedir($dirResource); } // Copying if (is_dir($source)) { $dirResource = opendir($source); if (!$isRoot && !is_dir($dest)) { mkdir($dest); chmod($dest, self::$_defaultDirectoryPermission); } while ($file = readdir($dirResource)) { if ($file != "." && $file != "..") { self::updateFiles($source . "/" . $file, $dest . "/" . $file); } } closedir($dirResource); } else { $permissions = self::$_defaultDirectoryPermission; if (file_exists($dest)) { $permissions = fileperms($dest); } copy($source, $dest); if ($permissions) { chmod($dest, $permissions); } } }