# La classe PharData

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

## Introduction

La classe PharData fournit une interface de haut niveau pour accéder et créer des archives tar et zip non exécutables. Du fait que ces archives ne contiennent pas de conteneur et qu'elles ne puissent être exécutées par l'extension phar, il est possible de créer et de manipuler des fichiers zip et tar normaux en utilisant la classe PharData même si le paramètre `phar.readonly` du php.ini est à `1`.

## Synopsis de la classe

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

## Sommaire

- PharData::addEmptyDir — Ajoute un répertoire vide à l'archive tar/zip
- PharData::addFile — Ajoute un fichier du système de fichiers à l'archive tar/zip
- PharData::addFromString — Ajoutez un fichier à partir d'une chaîne de caractères à l'archive tar/zip
- PharData::buildFromDirectory — Construit une archive tar/zip à partir des fichiers d'un répertoire
- PharData::buildFromIterator — Construit une archive tar ou zip à partir d'un itérateur
- PharData::compress — Compresse l'archive tar/zip complète en utilisant la compression Gzip ou Bzip2
- PharData::compressFiles — Compresse tous les fichiers de l'archive tar/zip courante
- PharData::__construct — Construit un objet d'archive tar ou zip non-exécutable
- PharData::convertToData — Convertit une archive phar en une archive tar ou zip non-exécutable
- PharData::convertToExecutable — Convertit une archive tar/zip non-exécutable en une archive phar exécutable
- PharData::copy — Copie un fichier interne à l'archive tar/zip vers un autre fichier au sein de la même archive
- PharData::decompress — Décompresse l'archive Phar entière
- PharData::decompressFiles — Décompresse tous les fichiers de l'archive zip courante
- PharData::delMetadata — Efface les méta-données globales d'une archive zip
- PharData::delete — Efface un fichier au sein de l'archive tar/zip
- PharData::__destruct — Détruit un objet non exécutable tar ou une archive zip
- PharData::extractTo — Extrait le contenu d'une archive tar/zip vers un répertoire
- PharData::isWritable — Vérifie si l'archive tar/zip peut être modifiée
- PharData::offsetSet — Remplit un fichier au sein de l'archive tar/zip avec le contenu d'un fichier externe ou d'une chaîne de caractères
- PharData::offsetUnset — Efface un fichier d'une archive tar/zip
- PharData::setAlias — Fonction inutile (Phar::setAlias n'est pas valide pour PharData)
- PharData::setDefaultStub — Fonction inutile (Phar::setDefaultStub n'est pas valide pour PharData)
- PharData::setMetadata — Fixe les méta-données de l'archive
- PharData::setSignatureAlgorithm — Assigne l'algorithme de signature d'un phar et l'applique
- PharData::setStub — Fonction inutile (Phar::setStub n'est pas valide pour PharData)