(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::copy — Copie un fichier appartenant à une archive vers un autre fichier de la même archive
Description
public
Phar::copy(string
$from
, string
$to
): bool
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.
Copie un fichier appartenant à une archive vers un nouveau
fichier de la même archive. C'est une alternative orientée
objet à l'utilisation de copy() avec un
flux phar.
Liste de paramètres
-
from
-
-
to
-
Valeurs de retour
Retourne true
en cas de succès, mais il est plus sûr d'encadrer l'appel à cette méthode
dans un bloc try/catch et de considérer son succès si aucune exception n'est levée.
Erreurs / Exceptions
Lève une exception UnexpectedValueException
si le fichier source n'existe pas, si le fichier destination existe
déjà, si l'accès en écriture est désactivé, si ouvrir l'un ou l'autre
des fichiers échoue, si la lecture du fichier source échoue, ou lève
une exception PharException
si l'écriture des changement dans le phar échoue.
Exemples
Exemple #1 Exemple avec phar::copy()
Cet exemple montre comment utiliser phar::copy() et la comparaison en terme
de performance avec l'équivalent utilisant le flux phar. La différence principale entre
les deux méthodes concerne la gestion des erreurs. Toutes les méthodes Phar lèvent des
exceptions, là où les fonctions de flux utilisent trigger_error().
<?php
try {
$phar = new Phar('monphar.phar');
$phar['a'] = 'salut';
$phar->copy('a', 'b');
echo $phar['b']; // affiche "salut"
} catch (Exception $e) {
// traite les erreurs
}
// l'équivalent en terme de flux du code ci-dessus
// des E_WARNING sont retournés plutôt que des exceptions
copy('phar://monphar.phar/a', 'phar//monphar.phar/c');
echo file_get_contents('phar://monphar.phar/c'); // affiche "salut"
?>