Microweber\Utils\Backup::copyr PHP Метод

copyr() публичный Метод

public copyr ( $source, $dest )
    public function copyr($source, $dest)
    {
        if (is_file($source) and !is_dir($dest)) {
            $dest = normalize_path($dest, false);
            $source = normalize_path($source, false);
            $dest_dir = dirname($dest);
            if (!is_dir($dest_dir)) {
                mkdir_recursive($dest_dir);
            }
            if (!is_writable($dest)) {
                //return;
            }
            return @copy($source, $dest);
        }
        if (!is_dir($dest)) {
            mkdir_recursive($dest);
        }
        if (is_dir($source)) {
            $dir = dir($source);
            if ($dir != false) {
                while (false !== ($entry = $dir->read())) {
                    if ($entry == '.' || $entry == '..') {
                        continue;
                    }
                    if ($dest !== "{$source}/{$entry}" and $dest !== "{$source}" . DS . "{$entry}") {
                        $this->copyr("{$source}/{$entry}", "{$dest}/{$entry}");
                    }
                }
            }
            $dir->close();
        }
        return true;
    }