# PharData::convertToExecutable

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

PharData::convertToExecutable — Convertit une archive tar/zip non-exécutable en une archive phar exécutable

### Description

public PharData::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 convertit une archive tar ou zip non-exécutable en une archive phar exécutable. N'importe lequel des trois formats de fichier (phar, tar ou zip) peut être utilisé et la compression de l'archive complète est aussi possible.

Si aucun changement n'est demandé, cette méthode soulève une exception BadMethodCallException.

En cas de succès, cette méthode crée une nouvelle archive sur le disque et retourne un objet Phar. L'ancienne archive n'est pas effacée du disque, ceci devant être fait manuellement une fois le traitement terminé.

### Liste de paramètres

`format`

  Le format doit être `Phar::PHAR`, `Phar::TAR` ou `Phar::ZIP`. S'il vaut `null`, le format de fichier actuel sera conservé.

`compression`

  La compression doit être `Phar::NONE` pour éviter la compression de l'archive complète, `Phar::GZ` pour la compression basée sur zlib, et `Phar::BZ2` pour la compression basée sur bzip.

`extension`

  Ce paramètre est utilisé pour écrase l'extension de fichier par défaut de l'archive convertie. Notez que toute les archives basées sur tar et sur zip doivent contenir `.phar` dans leur extension de fichier pour pouvoir être traitées comme des archives phar.

  En cas de conversion 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

Cette méthode retourne un objet Phar en cas de succès, ou `null` en cas d'échec

### Erreurs / Exceptions

Cette méthode soulève une exception BadMethodCallException quand elle est incapable de compresser, quand une méthode de compression inconnue a été spécifiée, quand l'archive demandée est mise en tampon avec Phar::startBuffering() et qu'elle n'a pas été conclue avec Phar::stopBuffering(), soulève une exception UnexpectedValueException si le support en écriture est désactivé, et soulève une exception PharException si des problèmes ont été rencontrés lors de la création du phar.

### Historique

Version | Description
--- | ---
8.0.0 | `format`, `compression`, et `localName` sont désormais nullable.

### Exemples

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

Utilisons PharData::convertToExecutable() :

`<?php
try {
$tarphar = new PharData('monphar.tar');
// le convertit au format de fichier phar
// notez que monphar.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 = $tarphar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
// les erreurs sont traitées ici
}
?>`

### Voir aussi

- Phar::convertToExecutable() - Convertit une archive phar vers un autre format de fichier d'archive phar exécutable
- Phar::convertToData() - Convertit une archive phar en un fichier non-exécutable
- PharData::convertToData() - Convertit une archive phar en une archive tar ou zip non-exécutable