Phar::convertToData

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

Phar::convertToData — phar 아카이브를 실행 불가능한 tar 또는 zip 파일로 변환


설명

public Phar::convertToData(?int $format = null, ?int $compression = null, ?string $extension = null): ?PharData

이 메서드는 실행 가능한 phar 아카이브를 tar 또는 zip 파일로 변환하는 데 사용됩니다. tar 또는 zip을 실행할 수 없도록 만들기 위해 phar 스텁 및 phar 별칭 파일이 새로 생성된 아카이브에서 제거됩니다.

변경 사항이 지정되지 않은 경우 아카이브가 phar 파일 형식인 경우 이 메서드는 BadMethodCallException을 발생시킵니다. tar 또는 zip 파일 형식의 아카이브의 경우 이 메서드는 아카이브를 실행할 수 없는 아카이브로 변환합니다.

성공하면 이 메서드는 디스크에 새 아카이브를 만들고 PharData 개체를 반환합니다. 이전 아카이브는 디스크에서 제거되지 않으며 프로세스가 완료된 후 수동으로 수행해야 합니다.


매개변수

format
Phar::TAR 또는 Phar::ZIP 중 하나여야 합니다. null로 설정하면 기존 파일 형식이 유지됩니다.
compression
전체 아카이브 압축이 없는 경우 Phar::NONE, zlib 기반 압축의 경우 Phar::GZ, bzip 기반 압축의 경우 Phar::BZ2 중 하나여야 합니다.
extension
이 매개변수는 변환된 아카이브의 기본 파일 확장자를 재정의하는 데 사용됩니다. .phar는 실행할 수 없는 tar 또는 zip 아카이브의 파일 이름 어디에도 사용할 수 없습니다.

tar 기반 phar 아카이브로 변환하는 경우 기본 확장자는 지정된 압축에 따라 .tar, .tar.gz.tar.bz2입니다. zip 기반 아카이브의 경우 기본 확장자는 .zip입니다.


반환 값

이 메서드는 성공하면 PharData 개체를 반환하고 실패하면 null을 반환합니다.


오류/예외

이 메서드는 압축할 수 없는 경우 BadMethodCallException을 throw하고, 알 수 없는 압축 메서드가 지정되었으며, 요청된 아카이브가 Phar::startBuffering()으로 버퍼링 중이고 Phar::stopBuffering()으로 종료되지 않았으며, 실행 중에 문제가 발생하면 PharException이 발생합니다. phar 생성 과정.


변경 로그

버전 설명
8.0.0 format,compressionextension는 이제 null을 허용합니다.

Examples

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

Phar::convertToData() 사용:

                  
<?php
try {
    $tarphar = new Phar('myphar.phar.tar');
    // note that myphar.phar.tar is *not* unlinked
    // convert it to the non-executable tar file format
    // creates myphar.tar
    $tar = $tarphar->convertToData();
    // convert to non-executable zip format, creates myphar.zip
    $zip = $tarphar->convertToData(Phar::ZIP);
    // create myphar.tbz
    $tgz = $tarphar->convertToData(Phar::TAR, Phar::BZ2, '.tbz');
    // creates myphar.phar.tgz
    $phar = $tarphar->convertToData(Phar::PHAR); // throws exception
} catch (Exception $e) {
    // handle the error here
}
?>
                  
                

기타