PHP Conference Nagoya 2025

Phar::copy

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

Phar::copyCopiar un fichero interno de un archivo phar a otro fichero nuevo dentro del phar

Descripción

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

Nota:

Este método requiere que la opción de php.ini phar.readonly esté establecida a 0 para que trabaje con objetos Phar. De otra manera, se lanzará una excepción de tipo PharException.

Copia un fichero interno de un archivo phar a otro fichero nuevo dentro del phar. Esta es una alternativa orientada a objetos para usar copy() con la envoltura de flujos phar.

Parámetros

oldfile

newfile

Valores devueltos

Devuelve true en caso de éxito, pero es más seguro encerrar la llamada al método en un bloque try/catch y asumir el éxito si no se lanza ninguna excepción.

Errores/Excepciones

Lanza una excepción de tipo UnexpectedValueException si el fichero origen no exite, el fichero destino ya existe, el acceso a escritura está deshabilitado, la apertura de cualquiera de los dos ficheros falla, la lectura del fichero fuente falla, o una excepción de tipo PharException si la escritura de los cambios del phar falla.

Ejemplos

Ejemplo #1 Un ejemplo de Phar::copy()

Este ejemplo muestra el uso de Phar::copy() y su equivalente con envoltura de flujos. La principal diferencia entre los dos enfoques es el manejo de errores. Todos los métodos de Phar lanzan excepciones, mientras que la envoltura de flujos utiliza trigger_error().

<?php
try {
$phar = new Phar('miphar.phar');
$phar['a'] = 'hola';
$phar->copy('a', 'b');
echo
$phar['b']; // imprime "hola"
} catch (Exception $e) {
// manejar errores
}

// el equivalente con envoltura de flujos del código de arriba.
// Se dispara E_WARNINGS en caso de error en vez de excepciones.
copy('phar://miphar.phar/a', 'phar//miphar.phar/c');
echo
file_get_contents('phar://miphar.phar/c'); // imprimie "hola"
?>

add a note

User Contributed Notes

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