Phar::copy

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

Phar::copy — phar 아카이브 내부의 파일을 phar 내의 다른 새 파일로 복사합니다.


설명

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

이 메서드는 Phar 객체에 대해 작동하기 위해 php.ini 설정 phar.readonly0으로 설정해야 합니다. 그렇지 않으면 PharException이 발생합니다.

phar 아카이브 내부의 파일을 phar 내의 다른 새 파일로 복사합니다. 이것은 phar 스트림 래퍼와 함께 copy()를 사용하는 것에 대한 객체 지향 대안입니다.


매개변수

to
from

반환 값

성공하면 true를 반환하지만 메서드 호출을 try/catch 블록으로 묶고 예외가 throw되지 않으면 성공으로 간주하는 것이 더 안전합니다.


오류/예외

소스 파일이 존재하지 않거나, 대상 파일이 이미 존재하거나, 쓰기 액세스가 비활성화되어 있거나, 파일 열기에 실패하거나, 소스 파일 읽기에 실패하면 UnexpectedValueException이 발생하고, Phar에 변경 사항을 쓰는 데 실패하면 PharException이 발생합니다.


Examples

예제 #1 Phar::copy() 예제

이 예제는 Phar::copy() 사용과 동일한 스트림 래퍼 성능을 보여줍니다. 두 접근 방식의 주요 차이점은 오류 처리입니다. 모든 Phar 메서드는 예외를 throw하지만 스트림 래퍼는 trigger_error()를 사용합니다.

                  
<?php
try {
    $phar = new Phar('myphar.phar');
    $phar['a'] = 'hi';
    $phar->copy('a', 'b');
    echo $phar['b']; // outputs "hi"
} catch (Exception $e) {
    // handle error
}

// the stream wrapper equivalent of the above code.
// E_WARNINGS are triggered on error rather than exceptions.
copy('phar://myphar.phar/a', 'phar//myphar.phar/c');
echo file_get_contents('phar://myphar.phar/c'); // outputs "hi"
?>