# The PharData class

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

## Introduction

The PharData class provides a high-level interface to accessing and creating non-executable tar and zip archives. Because these archives do not contain a stub and cannot be executed by the phar extension, it is possible to create and manipulate regular zip and tar files using the PharData class even if `phar.readonly` php.ini setting is `1`.

## Class synopsis

PharData extends RecursiveDirectoryIterator {
/* Inherited constants */
const int FilesystemIterator::CURRENT_AS_PATHNAME = 32 ;
const int FilesystemIterator::CURRENT_AS_FILEINFO = 0 ;
const int FilesystemIterator::CURRENT_AS_SELF = 16 ;
const int FilesystemIterator::CURRENT_MODE_MASK = 240 ;
const int FilesystemIterator::KEY_AS_PATHNAME = 0 ;
const int FilesystemIterator::KEY_AS_FILENAME = 256 ;
const int FilesystemIterator::FOLLOW_SYMLINKS = 512 ;
const int FilesystemIterator::KEY_MODE_MASK = 3840 ;
const int FilesystemIterator::NEW_CURRENT_AND_KEY = 256 ;
const int FilesystemIterator::SKIP_DOTS = 4096 ;
const int FilesystemIterator::UNIX_PATHS = 8192 ;
/* Methods */
addEmptyDir ( string `$dirname` ) : void
public Phar::addFile ( string `$file` [, string `$localname` ] ) : void
addFromString ( string `$localname` , string `$contents` ) : void
public Phar::buildFromDirectory ( string `$base_dir` [, string `$regex` ] ) : array
buildFromIterator ( Iterator `$iter` [, string `$base_directory` ] ) : array
compress ( int `$compression` [, string `$extension` ] ) : PharData
compressFiles ( int `$compression` ) : void
__construct ( string `$fname` [, int `$flags` [, string `$alias` [, int `$format` = `Phar::TAR` ]]] )
convertToData ([ int `$format` [, int `$compression` [, string `$extension` ]]] ) : PharData
convertToExecutable ([ int `$format` [, int `$compression` [, string `$extension` ]]] ) : Phar
copy ( string `$oldfile` , string `$newfile` ) : bool
decompress ([ string `$extension` ] ) : PharData
decompressFiles ( ) : bool
delMetadata ( ) : bool
delete ( string `$entry` ) : bool
extractTo ( string `$pathto` [, string|array|null `$files` = `NULL` [, bool `$overwrite` = `FALSE` ]] ) : bool
isWritable ( ) : bool
offsetSet ( string `$offset` , string `$value` ) : void
offsetUnset ( string `$offset` ) : bool
setAlias ( string `$alias` ) : bool
setDefaultStub ([ string `$index` [, string `$webindex` ]] ) : bool
public Phar::setMetadata ( mixed `$metadata` ) : void
public Phar::setSignatureAlgorithm ( int `$sigtype` ) : void
setStub ( string `$stub` [, int `$len` = -1 ] ) : bool
/* Inherited methods */
public Phar::addEmptyDir ( string `$dirname` ) : void
public Phar::addFile ( string `$file` [, string `$localname` ] ) : void
public Phar::addFromString ( string `$localname` , string `$contents` ) : void
final public static Phar::apiVersion ( ) : string
public Phar::buildFromDirectory ( string `$base_dir` [, string `$regex` ] ) : array
public Phar::buildFromIterator ( Iterator `$iter` [, string `$base_directory` ] ) : array
final public static Phar::canCompress ([ int `$type` = 0 ] ) : bool
final public static Phar::canWrite ( ) : bool
public Phar::compress ( int `$compression` [, string `$extension` ] ) : Phar
public Phar::compressAllFilesBZIP2 ( ) : bool
public Phar::compressAllFilesGZ ( ) : bool
public Phar::compressFiles ( int `$compression` ) : void
public Phar::__construct ( string `$fname` [, int `$flags` [, string `$alias` ]] )
public Phar::convertToData ([ int `$format` = 9021976 [, int `$compression` = 9021976 [, string `$extension` ]]] ) : PharData
public Phar::convertToExecutable ([ int `$format` = 9021976 [, int `$compression` = 9021976 [, string `$extension` ]]] ) : Phar
public Phar::copy ( string `$oldfile` , string `$newfile` ) : bool
public Phar::count ( ) : int
final public static Phar::createDefaultStub ([ string `$indexfile` [, string `$webindexfile` ]] ) : string
public Phar::decompress ([ string `$extension` ] ) : Phar
public Phar::decompressFiles ( ) : bool
public Phar::delMetadata ( ) : bool
public Phar::delete ( string `$entry` ) : bool
public Phar::extractTo ( string `$pathto` [, string|array|null `$files` = `NULL` [, bool `$overwrite` = `FALSE` ]] ) : bool
public Phar::getAlias ( ) : string
public Phar::getMetadata ( ) : mixed
public Phar::getModified ( ) : bool
public Phar::getPath ( ) : string
public Phar::getSignature ( ) : array
public Phar::getStub ( ) : string
final public static Phar::getSupportedCompression ( ) : array
final public static Phar::getSupportedSignatures ( ) : array
public Phar::getVersion ( ) : string
public Phar::hasMetadata ( ) : bool
final public static Phar::interceptFileFuncs ( ) : void
public Phar::isBuffering ( ) : bool
public Phar::isCompressed ( ) : mixed
public Phar::isFileFormat ( int `$format` ) : bool
final public static Phar::isValidPharFilename ( string `$filename` [, bool `$executable` = `TRUE` ] ) : bool
public Phar::isWritable ( ) : bool
final public static Phar::loadPhar ( string `$filename` [, string `$alias` ] ) : bool
final public static Phar::mapPhar ([ string `$alias` [, int `$dataoffset` = 0 ]] ) : bool
final public static Phar::mount ( string `$pharpath` , string `$externalpath` ) : void
final public static Phar::mungServer ( array `$munglist` ) : void
public Phar::offsetExists ( string `$offset` ) : bool
public Phar::offsetGet ( string `$offset` ) : PharFileInfo
public Phar::offsetSet ( string `$offset` , string `$value` ) : void
public Phar::offsetUnset ( string `$offset` ) : bool
final public static Phar::running ([ bool `$retphar` = `TRUE` ] ) : string
public Phar::setAlias ( string `$alias` ) : bool
public Phar::setDefaultStub ([ string `$index` [, string `$webindex` ]] ) : bool
public Phar::setMetadata ( mixed `$metadata` ) : void
public Phar::setSignatureAlgorithm ( int `$sigtype` [, string `$privatekey` ] ) : void
public Phar::setStub ( string `$stub` [, int `$len` = -1 ] ) : bool
public Phar::startBuffering ( ) : void
public Phar::stopBuffering ( ) : void
public Phar::uncompressAllFiles ( ) : bool
final public static Phar::unlinkArchive ( string `$archive` ) : bool
final public static Phar::webPhar ([ string `$alias` [, string `$index` = "index.php" [, string `$f404` [, array `$mimetypes` [, callable `$rewrites` ]]]]] ) : void
}

## Table of Contents

- PharData::addEmptyDir — Add an empty directory to the tar/zip archive
- PharData::addFile — Add a file from the filesystem to the tar/zip archive
- PharData::addFromString — Add a file from the filesystem to the tar/zip archive
- PharData::buildFromDirectory — Construct a tar/zip archive from the files within a directory
- PharData::buildFromIterator — Construct a tar or zip archive from an iterator
- PharData::compress — Compresses the entire tar/zip archive using Gzip or Bzip2 compression
- PharData::compressFiles — Compresses all files in the current tar/zip archive
- PharData::__construct — Construct a non-executable tar or zip archive object
- PharData::convertToData — Convert a phar archive to a non-executable tar or zip file
- PharData::convertToExecutable — Convert a non-executable tar/zip archive to an executable phar archive
- PharData::copy — Copy a file internal to the phar archive to another new file within the phar
- PharData::decompress — Decompresses the entire Phar archive
- PharData::decompressFiles — Decompresses all files in the current zip archive
- PharData::delMetadata — Deletes the global metadata of a zip archive
- PharData::delete — Delete a file within a tar/zip archive
- PharData::extractTo — Extract the contents of a tar/zip archive to a directory
- PharData::isWritable — Returns true if the tar/zip archive can be modified
- PharData::offsetSet — Set the contents of a file within the tar/zip to those of an external file or string
- PharData::offsetUnset — Remove a file from a tar/zip archive
- PharData::setAlias — Dummy function (Phar::setAlias is not valid for PharData)
- PharData::setDefaultStub — Dummy function (Phar::setDefaultStub is not valid for PharData)
- Phar::setMetadata — Sets phar archive meta-data
- Phar::setSignatureAlgorithm — Set the signature algorithm for a phar and apply it
- PharData::setStub — Dummy function (Phar::setStub is not valid for PharData)