예제 #1
0
 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);
         }
     }
 }