CakeFest 2024: The Official CakePHP Conference

PharData::copy

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

PharData::copyСкопировать файл из tar/zip-архива в новый файл внутри него же

Описание

public PharData::copy(string $from, string $to): bool

Копирует файл из tar/zip-архива в новый файл внутри него же. Это объектно-ориентированная альтернатива для copy() с потоковой обёрткой phar.

Список параметров

from

to

Возвращаемые значения

Возвращает true в случае успешного выполнения. Но лучше использовать механизм перехвата исключений для контроля успешности.

Ошибки

Выбрасывает исключение UnexpectedValueException, если копируемый файл не отсутствует, новый файл уже существует, запись запрещена или возникли проблемы с открытием чтением исходного файла. В случае проблем с записью на диск бросается исключение PharException.

Примеры

Пример #1 Пример использования PharData::copy()

В примере показано использование PharData::copy() и аналог с использованием потоковой обёртки. Главное различие между этими подходами - обработка ошибок. Все методы PharData выбрасывают исключения, тогда как потоковые обёртки используют функцию trigger_error().

<?php
try {
$phar = new PharData('myphar.tar');
$phar['a'] = 'hi';
$phar->copy('a', 'b');
echo
$phar['b']; // выводит "phar://myphar.tar/b"
} catch (Exception $e) {
// Обработка ошибок
}

// Аналог с использованием потоковых обёрток.
// В случае проблем вместо исключения вызывается ошибка уровня E_WARNINGS
copy('phar://myphar.tar/a', 'phar//myphar.tar/c');
echo
file_get_contents('phar://myphar.tar/c'); // выводит "hi"
?>

add a note

User Contributed Notes

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