(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::copy — Copia um arquivo interno do arquivo phar para outro novo arquivo dentro do phar
Nota:
Este método requer que a configuração
phar.readonly
do php.ini seja definida como0
para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.
Copia um arquivo interno do arquivo phar para outro novo arquivo dentro do phar. Esta é uma alternativa orientada a objetos ao uso de copy() com o empacotador de fluxo phar.
from
to
Sempre retorna true
.
Lança uma UnexpectedValueException se o arquivo de origem não existir, se o arquivo de destino já existir, se o acesso de gravação estiver desabilitado, se a abertura do arquivo falhar, se a leitura do arquivo de origem falhar ou uma PharException se a gravação das alterações no arquivo phar falhar.
Exemplo #1 Um exemplo de Phar::copy()
Este exemplo mostra o uso de Phar::copy() e o desempenho equivalente do empacotador de fluxo para a mesma coisa. A principal diferença entre as duas abordagens é o tratamento de erros. Todos os métodos Phar geram exceções, enquanto o empacotador de fluxo usa trigger_error().
<?php
try {
$phar = new Phar('meuphar.phar');
$phar['a'] = 'olá';
$phar->copy('a', 'b');
echo $phar['b']; // Exibe "phar://meuphar.phar/b"
} catch (Exception $e) {
// Lida com o erro
}
// O empacotador de fluxo equivalente ao código acima.
// E_WARNING são acionados em caso de erro em vez de uma exceção
copy('phar://meuphar.phar/a', 'phar//meuphar.phar/c');
echo file_get_contents('phar://meuphar.phar/c'); // Exibe "olá"
?>