# La classe Phar

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

## Introduction

La classe Phar fournit une interface de haut niveau pour accéder et créer des archives phar.

## Synopsis de la classe

class Phar 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;
/* Constantes */
const int BZ2;
const int GZ;
const int NONE;
const int PHAR;
const int TAR;
const int ZIP;
const int COMPRESSED;
const int PHP;
const int PHPS;
const int MD5;
const int OPENSSL;
const int OPENSSL_SHA256;
const int OPENSSL_SHA512;
const int SHA1;
const int SHA256;
const int SHA512;
/* Méthodes */
public __construct(string `$filename`, int `$flags` = FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS, ?string `$alias` = `null`)
public addEmptyDir(string `$directory`): void
public addFile(string `$filename`, ?string `$localName` = `null`): void
public addFromString(string `$localName`, string `$contents`): void
final public static apiVersion(): string
public buildFromDirectory(string `$directory`, string `$pattern` = ""): array
public buildFromIterator(Traversable `$iterator`, ?string `$baseDirectory` = `null`): array
final public static canCompress(int `$compression` = 0): bool
final public static canWrite(): bool
public compress(int `$compression`, ?string `$extension` = `null`): ?Phar
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 count(int `$mode` = `COUNT_NORMAL`): int
final public static createDefaultStub(?string `$index` = `null`, ?string `$webIndex` = `null`): string
public decompress(?string `$extension` = `null`): ?Phar
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 getAlias(): ?string
public getMetadata(array `$unserializeOptions` = []): mixed
public getModified(): bool
public getPath(): string
public getSignature(): array|false
public getStub(): string
final public static getSupportedCompression(): array
final public static getSupportedSignatures(): array
public getVersion(): string
public hasMetadata(): bool
final public static interceptFileFuncs(): void
public isBuffering(): bool
public isCompressed(): int|false
public isFileFormat(int `$format`): bool
final public static isValidPharFilename(string `$filename`, bool `$executable` = `true`): bool
public isWritable(): bool
final public static loadPhar(string `$filename`, ?string `$alias` = `null`): bool
final public static mapPhar(?string `$alias` = `null`, int `$offset` = 0): bool
final public static mount(string `$pharPath`, string `$externalPath`): void
final public static mungServer(array `$variables`): void
public offsetExists(string `$localName`): bool
public offsetGet(string `$localName`): SplFileInfo
public offsetSet(string `$localName`, resource|string `$value`): void
public offsetUnset(string `$localName`): void
final public static running(bool `$returnPhar` = `true`): string
public setAlias(string `$alias`): true
public setDefaultStub(?string `$index` = `null`, ?string `$webIndex` = `null`): true
public setMetadata(mixed `$metadata`): void
public setSignatureAlgorithm(int `$algo`, ?string `$privateKey` = `null`): void
public setStub(resource|string `$stub`, int `$length` = -1): bool
public startBuffering(): void
public stopBuffering(): void
final public static unlinkArchive(string `$filename`): true
final public static webPhar(
?string `$alias` = `null`,
?string `$index` = `null`,
?string `$fileNotFoundScript` = `null`,
array `$mimeTypes` = [],
?callable `$rewrite` = `null`
): void
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
}

## Historique

Version | Description
--- | ---
8.4.0 | Ajout de la prise en charge de l'extension de timestamp Unix pour les archives basées sur Zip.

## Sommaire

- Phar::addEmptyDir — Ajoute un répertoire vide à l'archive phar
- Phar::addFile — Ajoute un fichier du système de fichiers à l'archive phar
- Phar::addFromString — Ajoute un fichier depuis une chaîne de caractère à l'archive phar
- Phar::apiVersion — Retourne la version de l'API
- Phar::buildFromDirectory — Construit une archive phar à partir des fichiers d'un répertoire
- Phar::buildFromIterator — Construit une archive phar à partir d'un itérateur
- Phar::canCompress — Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
- Phar::canWrite — Détermine si l'extension phar supporte la création et l'écriture des phars
- Phar::compress — Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2
- Phar::compressFiles — Compresse tous les fichiers de l'archive Phar courante'
- Phar::__construct — Construit un objet d'archive Phar
- Phar::convertToData — Convertit une archive phar en un fichier non-exécutable
- Phar::convertToExecutable — Convertit une archive phar vers un autre format de fichier d'archive phar exécutable
- Phar::copy — Copie un fichier appartenant à une archive vers un autre fichier de la même archive
- Phar::count — Retourne le nombre d'entrées (fichiers) dans l'archive Phar
- Phar::createDefaultStub — Crée un conteneur de chargement d'une archive Phar
- Phar::decompress — Décompresse l'archive tar complète
- Phar::decompressFiles — Décompresse tous les fichiers de l'archive Phar courante
- Phar::delMetadata — Efface les méta-données globales du phar
- Phar::delete — Efface un fichier au sein d'une archive phar
- Phar::__destruct — Détruit un objet archive Phar
- Phar::extractTo — Extrait le contenu d'une archive phar vers un répertoire
- Phar::getAlias — Récupère l'alias pour Phar
- Phar::getMetadata — Retourne les méta-données de l'archive phar
- Phar::getModified — Indique si le fichier phar a été modifié
- Phar::getPath — Récupère le chemin absolu de l'archive Phar sur le disque
- Phar::getSignature — Retourne la signature MD5/SHA1/SHA256/SHA512 d'une archive Phar
- Phar::getStub — Retourne le chargeur PHP ou le conteneur de chargement d'une archive Phar
- Phar::getSupportedCompression — Retourne un tableau des algorithmes de compression supportés
- Phar::getSupportedSignatures — Retourne un tableau des types de signature supportés
- Phar::getVersion — Retourne les informations de version de l'archive Phar
- Phar::hasMetadata — Détermine si le phar a ou non des méta-données
- Phar::interceptFileFuncs — Informe phar qu'il doit intercepter les fonctions de fichiers
- Phar::isBuffering — Détermine si les opérations d'écriture du Phar sont mises en tampons ou sont directement inscrites sur le disque
- Phar::isCompressed — Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
- Phar::isFileFormat — Retourne true si l'archive phar est basée sur le formats de fichier tar/phar/zip selon le paramètre
- Phar::isValidPharFilename — Détermine si le nom de fichier spécifié est un nom de fichier valide pour une archive phar
- Phar::isWritable — Retourne true si l'archive phar peut être modifiée
- Phar::loadPhar — Charge n'importe quelle archive phar avec un alias
- Phar::mapPhar — Lit le phar exécuté et charge son manifeste
- Phar::mount — Monte un chemin ou un fichier externe à un emplacement virtuel au sein de l'archive phar
- Phar::mungServer — Définit une liste de maximum 4 variables $_SERVER qui doivent être modifiées lors de l'exécution
- Phar::offsetExists — Détermine si un fichier existe dans le phar
- Phar::offsetGet — Obtient un objet PharFileInfo à partir d'un fichier
- Phar::offsetSet — Met le contenu d'un fichier interne à l'archive à l'identique du contenu d'un fichier externe
- Phar::offsetUnset — Efface un fichier d'un phar
- Phar::running — Retourne le chemin complet sur le disque ou l'URL phar complète de l'archive phar couramment exécutée
- Phar::setAlias — Fixe l'alias de l'archive Phar
- Phar::setDefaultStub — Utilisé pour fixer le chargeur PHP ou le conteneur de chargement d'une archive Phar en tant que chargeur par défaut
- Phar::setMetadata — Fixe les métadonnées de l'archive phar
- Phar::setSignatureAlgorithm — Fixe et applique l'algorithme de signature d'un phar
- Phar::setStub — Utilisé pour spécifier le chargeur PHP ou le conteneur de chargement d'une archive Phar
- Phar::startBuffering — Démarre la mise en tampon d'écritures Phar, ne modifie pas l'objet Phar sur le disque
- Phar::stopBuffering — Arrête la mise en tampon des écritures Phar et provoque l'écriture que le disque
- Phar::unlinkArchive — Efface complètement une archive phar du disque et de la mémoire
- Phar::webPhar — Redirige une requête depuis un navigateur web à un fichier interne dans l'archive phar