Phar::convertToExecutable

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

Phar::convertToExecutable — phar 아카이브를 다른 실행 가능한 phar 아카이브 파일 형식으로 변환


설명

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

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

이 메서드는 phar 아카이브를 다른 파일 형식으로 변환하는 데 사용됩니다. 예를 들어, zip 기반 실행 가능한 phar 아카이브 또는 phar 파일 형식의 실행 가능한 phar 아카이브에서 tar 기반 실행 가능한 phar 아카이브를 만드는 데 사용할 수 있습니다. 또한 전체 아카이브 압축을 tar 또는 phar 기반 아카이브에 적용하는 데 사용할 수 있습니다.

변경 사항이 지정되지 않은 경우 이 메서드는 BadMethodCallException을 throw합니다.

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


매개변수

format
Phar::PHAR, Phar::TAR 또는 Phar::ZIP 중 하나여야 합니다. null로 설정하면 기존 파일 형식이 유지됩니다.
compression
전체 아카이브 압축이 없는 경우 Phar::NONE, zlib 기반 압축의 경우 Phar::GZ, bzip 기반 압축의 경우 Phar::BZ2 중 하나여야 합니다.
extension
이 매개변수는 변환된 아카이브의 기본 파일 확장자를 재정의하는 데 사용됩니다. 모든 zip 및 tar 기반 phar 아카이브는 phar 아카이브로 처리되기 위해 파일 확장자에 .phar를 포함해야 합니다.

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


반환 값

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


오류/예외

이 메서드는 압축할 수 없는 경우 BadMethodCallException을 throw하고, 알 수 없는 압축 메서드가 지정되었으며, 요청된 아카이브가 Phar::startBuffering()으로 버퍼링 중이고 Phar::stopBuffering()으로 종료되지 않았으며, 쓰기 지원이 비활성화된 경우 UnexpectedValueException이 발생합니다. Phar 생성 프로세스 중에 문제가 발생한 경우 PharException입니다.


변경 로그

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

Examples

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

Phar::convertToExecutable() 사용:

                  
<?php
try {
    $tarphar = new Phar('myphar.phar.tar');
    // convert it to the phar file format
    // note that myphar.phar.tar is *not* unlinked
    $phar = $tarphar->convertToExecutable(Phar::PHAR); // creates myphar.phar
    $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
    // creates myphar.phar.tgz
    $compressed = $phar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
    // handle the error here
}
?>
                  
                

기타