Example #1
0
 /**
  * Adding files to the archive.
  *
  * @param PharData|ZipArchive $archive
  * @return PharData|ZipArchive
  * @access private
  * @final
  */
 private final function addFiles($archive)
 {
     switch ($this->type) {
         case self::RAR:
         case self::TAR:
             $archive->buildFromDirectory($this->path);
             break;
         case self::ZIP:
             $this->backupDir = str_replace('\\', '/', realpath($this->path));
             $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($this->path), RecursiveIteratorIterator::SELF_FIRST);
             foreach ($files as $file) {
                 $file = str_replace('\\', '/', $file);
                 if (in_array(substr($file, strrpos($file, '/') + 1), array('.', '..'))) {
                     continue;
                 }
                 $file = realpath($file);
                 if (is_file($file)) {
                     $archive->addFile($file, trim(str_replace($this->path, '', $file), '/'));
                 }
             }
             break;
     }
     return $archive;
 }