(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
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.
from
to
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.
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.
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"
?>