# 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 integer FilesystemIterator::CURRENT_AS_PATHNAME = 32 ;
const integer FilesystemIterator::CURRENT_AS_FILEINFO = 0 ;
const integer FilesystemIterator::CURRENT_AS_SELF = 16 ;
const integer FilesystemIterator::CURRENT_MODE_MASK = 240 ;
const integer FilesystemIterator::KEY_AS_PATHNAME = 0 ;
const integer FilesystemIterator::KEY_AS_FILENAME = 256 ;
const integer FilesystemIterator::FOLLOW_SYMLINKS = 512 ;
const integer FilesystemIterator::KEY_MODE_MASK = 3840 ;
const integer FilesystemIterator::NEW_CURRENT_AND_KEY = 256 ;
const integer FilesystemIterator::SKIP_DOTS = 4096 ;
const integer 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 ( void ) : bool
delMetadata ( void ) : bool
delete ( string `$entry` ) : bool
extractTo ( string `$pathto` [, string|array `$files` [, bool `$overwrite` = `FALSE` ]] ) : bool
isWritable ( void ) : 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 ( void ) : 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 ( void ) : bool
public Phar::compress ( int `$compression` [, string `$extension` ] ) : Phar
public Phar::compressAllFilesBZIP2 ( void ) : bool
public Phar::compressAllFilesGZ ( void ) : 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 ( void ) : int
final public static Phar::createDefaultStub ([ string `$indexfile` [, string `$webindexfile` ]] ) : string
public Phar::decompress ([ string `$extension` ] ) : Phar
public Phar::decompressFiles ( void ) : bool
public Phar::delMetadata ( void ) : bool
public Phar::delete ( string `$entry` ) : bool
public Phar::extractTo ( string `$pathto` [, string|array `$files` [, bool `$overwrite` = `FALSE` ]] ) : bool
public Phar::getAlias ( void ) : string
public Phar::getMetadata ( void ) : mixed
public Phar::getModified ( void ) : bool
public Phar::getPath ( void ) : string
public Phar::getSignature ( void ) : array
public Phar::getStub ( void ) : string
final public static Phar::getSupportedCompression ( void ) : array
final public static Phar::getSupportedSignatures ( void ) : array
public Phar::getVersion ( void ) : string
public Phar::hasMetadata ( void ) : bool
final public static Phar::interceptFileFuncs ( void ) : void
public Phar::isBuffering ( void ) : bool
public Phar::isCompressed ( void ) : mixed
public Phar::isFileFormat ( int `$format` ) : bool
final public static Phar::isValidPharFilename ( string `$filename` [, bool `$executable` = `TRUE` ] ) : bool
public Phar::isWritable ( void ) : 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` ) : int
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 ) : void
public Phar::stopBuffering ( void ) : void
public Phar::uncompressAllFiles ( void ) : 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)