# La clase PharData

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

## Introducción

La clase PharData proporciona una interfaz de alto nivel para acceder y crear archivos tar y zip no ejecutables. Dado que estos archivos no contienen un contenedor y no pueden ser ejecutados por la extensión phar, es posible crear y manipular archivos zip y tar normales utilizando la clase PharData incluso si el parámetro `phar.readonly` del php.ini está a `1`.

## Sinopsis de la Clase

class PharData extends RecursiveDirectoryIterator implements Countable, ArrayAccess {
/* Constantes heredadas */
public const int FilesystemIterator::CURRENT_MODE_MASK;
public const int FilesystemIterator::CURRENT_AS_PATHNAME;
public const int FilesystemIterator::CURRENT_AS_FILEINFO;
public const int FilesystemIterator::CURRENT_AS_SELF;
public const int FilesystemIterator::KEY_MODE_MASK;
public const int FilesystemIterator::KEY_AS_PATHNAME;
public const int FilesystemIterator::FOLLOW_SYMLINKS;
public const int FilesystemIterator::KEY_AS_FILENAME;
public const int FilesystemIterator::NEW_CURRENT_AND_KEY;
public const int FilesystemIterator::OTHER_MODE_MASK;
public const int FilesystemIterator::SKIP_DOTS;
public const int FilesystemIterator::UNIX_PATHS;
/* Métodos */
public function __construct(
string `$filename`,
int `$flags` = FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS,
?string `$alias` = `null`,
int `$format` = 0
)
public function addEmptyDir(string `$directory`): void
public function addFile(string `$filename`, ?string `$localName` = `null`): void
public function addFromString(string `$localName`, string `$contents`): void
public function buildFromDirectory(string `$directory`, string `$pattern` = ""): array
public function buildFromIterator(Traversable `$iterator`, ?string `$baseDirectory` = `null`): array
public function compress(int `$compression`, ?string `$extension` = `null`): ?PharData
public function compressFiles(int `$compression`): void
public function convertToData(?int `$format` = `null`, ?int `$compression` = `null`, ?string `$extension` = `null`): ?PharData
public function convertToExecutable(?int `$format` = `null`, ?int `$compression` = `null`, ?string `$extension` = `null`): ?Phar
public function copy(string `$from`, string `$to`): true
public function decompress(?string `$extension` = `null`): ?PharData
public function decompressFiles(): true
public function delMetadata(): true
public function delete(string `$localName`): true
public function extractTo(string `$directory`, array|string|null `$files` = `null`, bool `$overwrite` = `false`): bool
public function isWritable(): bool
public function offsetSet(string `$localName`, resource|string `$value`): void
public function offsetUnset(string `$localName`): void
public function setAlias(string `$alias`): bool
public function setDefaultStub(?string `$index` = `null`, ?string `$webIndex` = `null`): bool
public function setMetadata(mixed `$metadata`): void
public function setSignatureAlgorithm(int `$algo`, ?string `$privateKey` = `null`): void
public function setStub(resource|string `$stub`, int `$length` = -1): true
public function __destruct()
/* Métodos heredados */
public function RecursiveDirectoryIterator::getChildren(): RecursiveDirectoryIterator
public function RecursiveDirectoryIterator::getSubPath(): string
public function RecursiveDirectoryIterator::getSubPathname(): string
public function RecursiveDirectoryIterator::hasChildren(bool `$allowLinks` = `false`): bool
public function RecursiveDirectoryIterator::key(): string
public function RecursiveDirectoryIterator::next(): void
public function RecursiveDirectoryIterator::rewind(): void
public function FilesystemIterator::current(): string|SplFileInfo|FilesystemIterator
public function FilesystemIterator::getFlags(): int
public function FilesystemIterator::key(): string
public function FilesystemIterator::next(): void
public function FilesystemIterator::rewind(): void
public function FilesystemIterator::setFlags(int `$flags`): void
public function DirectoryIterator::current(): mixed
public function DirectoryIterator::getBasename(string `$suffix` = ""): string
public function DirectoryIterator::getExtension(): string
public function DirectoryIterator::getFilename(): string
public function DirectoryIterator::isDot(): bool
public function DirectoryIterator::key(): mixed
public function DirectoryIterator::next(): void
public function DirectoryIterator::rewind(): void
public function DirectoryIterator::seek(int `$offset`): void
public function DirectoryIterator::__toString(): string
public function DirectoryIterator::valid(): bool
public function SplFileInfo::getATime(): int|false
public function SplFileInfo::getBasename(string `$suffix` = ""): string
public function SplFileInfo::getCTime(): int|false
public function SplFileInfo::getExtension(): string
public function SplFileInfo::getFileInfo(?string `$class` = `null`): SplFileInfo
public function SplFileInfo::getFilename(): string
public function SplFileInfo::getGroup(): int|false
public function SplFileInfo::getInode(): int|false
public function SplFileInfo::getLinkTarget(): string|false
public function SplFileInfo::getMTime(): int|false
public function SplFileInfo::getOwner(): int|false
public function SplFileInfo::getPath(): string
public function SplFileInfo::getPathInfo(?string `$class` = `null`): ?SplFileInfo
public function SplFileInfo::getPathname(): string
public function SplFileInfo::getPerms(): int|false
public function SplFileInfo::getRealPath(): string|false
public function SplFileInfo::getSize(): int|false
public function SplFileInfo::getType(): string|false
public function SplFileInfo::isDir(): bool
public function SplFileInfo::isExecutable(): bool
public function SplFileInfo::isFile(): bool
public function SplFileInfo::isLink(): bool
public function SplFileInfo::isReadable(): bool
public function SplFileInfo::isWritable(): bool
public function SplFileInfo::openFile(string `$mode` = "r", bool `$useIncludePath` = `false`, ?resource `$context` = `null`): SplFileObject
public function SplFileInfo::setFileClass(string `$class` = `SplFileObject::class`): void
public function SplFileInfo::setInfoClass(string `$class` = `SplFileInfo::class`): void
public function SplFileInfo::__toString(): string
}

## Tabla de contenidos

- PharData::addEmptyDir — Añade un directorio vacío al archivo tar/zip
- PharData::addFile — Añade un fichero del sistema de archivos al archivo tar/zip
- PharData::addFromString — Añade un fichero a partir de un string al archivo tar/zip
- PharData::buildFromDirectory — Construye un archivo tar/zip a partir de los ficheros de un directorio
- PharData::buildFromIterator — Construye un archivo tar o zip a partir de un iterador
- PharData::compress — Comprime el archivo tar/zip completo utilizando la compresión Gzip o Bzip2
- PharData::compressFiles — Comprime todos los ficheros del archivo tar/zip actual
- PharData::__construct — Construye un objeto de archivo tar o zip no ejecutable
- PharData::convertToData — Convierte un archivo phar en un archivo tar o zip no ejecutable
- PharData::convertToExecutable — Convierte un archivo tar/zip no ejecutable en un archivo phar ejecutable
- PharData::copy — Copia un fichero interno del archivo tar/zip a otro fichero dentro del mismo archivo
- PharData::decompress — Descomprime el archivo Phar completo
- PharData::decompressFiles — Descomprime todos los ficheros del archivo zip actual
- PharData::delMetadata — Elimina los metadatos globales de un archivo zip
- PharData::delete — Elimina un fichero dentro del archivo tar/zip
- PharData::__destruct — Destruye un objeto tar no ejecutable o un archivo zip
- PharData::extractTo — Extrae el contenido de un archivo tar/zip hacia un directorio
- PharData::isWritable — Verifica si el archivo tar/zip puede ser modificado
- PharData::offsetSet — Rellena un fichero dentro del archivo tar/zip con el contenido de un fichero externo o de un string
- PharData::offsetUnset — Elimina un fichero de un archivo tar/zip
- PharData::setAlias — Función inútil (Phar::setAlias no es válido para PharData)
- PharData::setDefaultStub — Función inútil (Phar::setDefaultStub no es válido para PharData)
- PharData::setMetadata — Fija las metadatos del archivo
- PharData::setSignatureAlgorithm — Asigna el algoritmo de firma de un phar y lo aplica
- PharData::setStub — Función inútil (Phar::setStub no es válido para PharData)

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open