original_string: public static function factory($name, $filename)
      {
          switch ($name) {
              case 'ZipArchive':
                  if (class_exists('ZipArchive', false)) {
                      return new ZipArchive($filename);
                  }
                  break;
  
              case 'tar.gz':
                  return new Tar($filename, 'gz');
  
              case 'tar.bz2':
                  return new Tar($filename, 'bz2');
  
              case 'gz':
                  if (function_exists('gzopen')) {
                      return new Gzip($filename);
                  }
                  break;
  
              case 'PclZip':
              default:
                  return new PclZip($filename);
          }
  
          return new PclZip($filename);
      }
code: public static function factory($name, $filename)
      {
          switch ($name) {
              case 'ZipArchive':
                  if (class_exists('ZipArchive', false)) {
                      return new ZipArchive($filename);
                  }
                  break;
  
              case 'tar.gz':
                  return new Tar($filename, 'gz');
  
              case 'tar.bz2':
                  return new Tar($filename, 'bz2');
  
              case 'gz':
                  if (function_exists('gzopen')) {
                      return new Gzip($filename);
                  }
                  break;
  
              case 'PclZip':
              default:
                  return new PclZip($filename);
          }
  
          return new PclZip($filename);
      }
code_tokens: public static function factory ( $ name , $ filename ) { switch ( $ name ) { case 'ZipArchive' : if ( class_exists ( 'ZipArchive' , false ) ) { return new ZipArchive ( $ filename ) ; } break ; case 'tar.gz' : return new Tar ( $ filename , 'gz' ) ; case 'tar.bz2' : return new Tar ( $ filename , 'bz2' ) ; case 'gz' : if ( function_exists ( 'gzopen' ) ) { return new Gzip ( $ filename ) ; } break ; case 'PclZip' : default : return new PclZip ( $ filename ) ; } return new PclZip ( $ filename ) ; }
docstring: Factory method to create an unarchiver
  
  @param string $name Name of unarchiver
  @param string $filename Name of .zip archive
  @return \Piwik\Decompress\DecompressInterface
docstring_tokens: Factory method to create an unarchiver