(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
PharData::copy — Copia um arquivo interno do arquivo tar/zip para outro arquivo novo dentro do mesmo arquivo
Copia um arquivo interno do arquivo tar/zip para outro arquivo novo dentro do mesmo arquivo. Esta é uma alternativa orientada a objetos ao uso de copy() com o empacotador de fluxo phar.
from
to
Sempre retorna true
.
Lança 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 PharData::copy()
Este exemplo mostra o uso de PharData::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 PharData geram exceções, enquanto o empacotador de fluxo usa trigger_error().
<?php
try {
$phar = new PharData('meuphar.tar');
$phar['a'] = 'olá';
$phar->copy('a', 'b');
echo $phar['b']; // Exibe "phar://meuphar.tar/b"
} catch (Exception $e) {
// Lida com erros
}
// O equivalente em empacotador de fluxo para o código acima.
// E_WARNING é gerado em caso de erros em vez de exceções
copy('phar://meuphar.tar/a', 'phar//meuphar.tar/c');
echo file_get_contents('phar://meuphar.tar/c'); // Exibe "olá"
?>