Phar::convertToExecutable

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

Phar::convertToExecutable — Convertit une archive phar vers un autre format de fichier d'archive phar exĂ©cutable

Description

public function Phar::convertToExecutable(?int $format = null, ?int $compression = null, ?string $extension = null): ?Phar

Note: Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Cette mĂ©thode est utilisĂ©e pour convertir une archive phar vers un autre format de fichier. Par exemple, elle peut ĂȘtre utilisĂ©e pour crĂ©er une archive phar basĂ©e sur tar en partant d'une archive phar basĂ©e sur zip ou Ă  partir d'une archive phar exĂ©cutable basĂ©e sur le format de fichier phar. De plus, elle peut aussi ĂȘtre utilisĂ©e pour appliquer une compression globale Ă  une archive basĂ©e sur tar ou sur phar.

Si aucun changement n'est précisé, cette méthode lÚve une exception BadMethodCallException.

En cas de succĂšs, la mĂ©thode crĂ©e une nouvelle archive sur le disque et retourne un objet Phar. L'ancienne archive n'est pas supprimĂ©e du disque, ce qui devrait ĂȘtre fait manuellement Ă  la fin du procĂ©dĂ©.

Liste de paramĂštres

format

Ce doit ĂȘtre l'un des formats Phar::PHAR, Phar::TAR, ou Phar::ZIP. Si ce paramĂštre est null, le format de fichier actuel sera conservĂ©.

compression

Ce doit ĂȘtre Phar::NONE pour aucune compression globale, Phar::GZ pour une compression basĂ©e sur zlib et Phar::BZ2 pour une compression basĂ©e sur bzip2.

extension

Ce paramĂštre est utilisĂ© pour Ă©craser l'extension par dĂ©faut d'une archive convertie. À noter que toutes les archives phar basĂ©es sur zip ou sur tar doivent comporter .phar dans leur extension pour ĂȘtre traitĂ©es comme une archive phar.

Si on convertit vers une archive basée sur phar, les extensions par défaut sont .phar, .phar.gz, ou .phar.bz2 selon la compression spécifiée. Pour les archives phar basées sur tar, les extensions par défaut sont .phar.tar, .phar.tar.gz, et .phar.tar.bz2. Pour les archives phar basées sur zip, l'extension par défaut est .phar.zip.

Valeurs de retour

La méthode retourne un objet Phar en cas de succÚs, ou null en cas d'échec.

Erreurs / Exceptions

Cette mĂ©thode lĂšve une exception BadMethodCallException si elle n'est pas capable de compresser, si une mĂ©thode de compression inconnue a Ă©tĂ© spĂ©cifiĂ©e ou si l'archive demandĂ©e a Ă©tĂ© mise en tampon avec Phar::startBuffering() sans ĂȘtre conclue avec Phar::stopBuffering(), lĂšve une exception UnexpectedValueException si le support en Ă©criture a Ă©tĂ© dĂ©sactivĂ© et lĂšve une exception PharException si un quelconque problĂšme a Ă©tĂ© rencontrĂ© pendant la phase de crĂ©ation de l'archive.

Historique

Version Description
8.0.0 format, compression, et extension sont désormais nullable.

Exemples

Exemple #1 Un exemple avec Phar::convertToExecutable()

Utilisons Phar::convertToExecutable() :

<?php
try {
$tarphar = new Phar('monphar.phar.tar');
// on le convertit vers le format de fichier phar
// notez bien que monphar.phar.tar n'est *pas* effacé
$phar = $tarphar->convertToExecutable(Phar::PHAR); // crée monphar.phar
$phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
// crée monphar.phar.tgz
$compressed = $phar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (
Exception $e) {
// on traite les erreurs ici
}
?>

Voir aussi

add a note

User Contributed Notes 1 note

up
0
alex at phpguide dot co dot il ¶
15 years ago
Convert to executable and compress methods override any stub you have created with their own stub which is responsible for extracting/executing self's content.

calling setStub() after convertingToExecutable doesn't help either. As far of php 5.3.6 (phar     2.0.1 ) if you want to have a phar archive accessible threw the web, you'll have to create your own 
index.php which will include a nonexecutable phar and act as the bootstrap.