# 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 function __construct(string `$filename`, int `$flags` = FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS, ?string `$alias` = `null`)
public function addEmptyDir(string `$directory`): void
public function addFile(string `$filename`, ?string `$localName` = `null`): void
public function addFromString(string `$localName`, string `$contents`): void
final public static function apiVersion(): string
public function buildFromDirectory(string `$directory`, string `$pattern` = ""): array
public function buildFromIterator(Traversable `$iterator`, ?string `$baseDirectory` = `null`): array
final public static function canCompress(int `$compression` = 0): bool
final public static function canWrite(): bool
public function compress(int `$compression`, ?string `$extension` = `null`): ?Phar
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 count(int `$mode` = `COUNT_NORMAL`): int
final public static function createDefaultStub(?string `$index` = `null`, ?string `$webIndex` = `null`): string
public function decompress(?string `$extension` = `null`): ?Phar
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 getAlias(): ?string
public function getMetadata(array `$unserializeOptions` = []): mixed
public function getModified(): bool
public function getPath(): string
public function getSignature(): array|false
public function getStub(): string
final public static function getSupportedCompression(): array
final public static function getSupportedSignatures(): array
public function getVersion(): string
public function hasMetadata(): bool
final public static function interceptFileFuncs(): void
public function isBuffering(): bool
public function isCompressed(): int|false
public function isFileFormat(int `$format`): bool
final public static function isValidPharFilename(string `$filename`, bool `$executable` = `true`): bool
public function isWritable(): bool
final public static function loadPhar(string `$filename`, ?string `$alias` = `null`): bool
final public static function mapPhar(?string `$alias` = `null`, int `$offset` = 0): bool
final public static function mount(string `$pharPath`, string `$externalPath`): void
final public static function mungServer(array `$variables`): void
public function offsetExists(string `$localName`): bool
public function offsetGet(string `$localName`): SplFileInfo
public function offsetSet(string `$localName`, resource|string `$value`): void
public function offsetUnset(string `$localName`): void
final public static function running(bool `$returnPhar` = `true`): string
public function setAlias(string `$alias`): true
public function setDefaultStub(?string `$index` = `null`, ?string `$webIndex` = `null`): true
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 startBuffering(): void
public function stopBuffering(): void
final public static function unlinkArchive(string `$filename`): true
final public static function webPhar(
?string `$alias` = `null`,
?string `$index` = `null`,
?string `$fileNotFoundScript` = `null`,
array `$mimeTypes` = [],
?callable `$rewrite` = `null`
): void
public function __destruct()
/* Méthodes héritées */
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
}

## 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.
8.0.0 | Les métadonnées ne sont plus désérialisées lors de l’ouverture de l’archive, mais leur désérialisation est différée jusqu’à l’appel de Phar::getMetadata().

## Notes

Attention

Antérieur à PHP 8.0.0, les métadonnées étaient désérialisées lors de l’ouverture de l’archive, ce qui pouvait entraîner des failles de sécurité. À partir de PHP 8.0.0, les métadonnées ne sont désérialisées que lors de l’appel à Phar::getMetadata(), lequel offre des options permettant de restreindre la désérialisation pour des raisons de sécurité.

## 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ères à 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 la compression en utilisant soit zlib 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 format 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 sur 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

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