PHP Australia Conference 2015

Phar::copy

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::copyCopie un fichier appartenant à une archive vers un autre fichier de la même archive

Description

public bool Phar::copy ( string $oldfile , string $newfile )

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

oldfile

newfile

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"
?>

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top