Phar::compress

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

Phar::compress — Gzip 또는 Bzip2 압축을 사용하여 전체 Phar 아카이브를 압축합니다.


설명

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

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

tar 기반 및 phar 기반 phar 아카이브의 경우 이 메서드는 gzip 압축 또는 bzip2 압축을 사용하여 전체 아카이브를 압축합니다. 결과 파일은 gunzip command/bunzip 명령으로 처리하거나 Phar 확장자를 사용하여 직접 투명하게 액세스할 수 있습니다.

Zip 기반 phar 아카이브의 경우 이 메서드는 예외와 함께 실패합니다. gzip 압축으로 압축하려면 zlib 확장을 활성화해야 하고 bzip2 압축으로 압축하려면 bzip2 확장을 활성화해야 합니다. phar의 내용을 수정하는 모든 기능과 마찬가지로 성공하려면 phar.readonly INI 변수가 꺼져 있어야 합니다.

또한 이 메서드는 압축을 제거하기 위해 Phar::NONE을 전달한 경우 .gz, .bz2를 추가하거나 확장자를 제거하여 아카이브 이름을 자동으로 바꿉니다. 또는 두 번째 매개변수로 파일 확장자를 지정할 수 있습니다.


매개변수

compression
압축은 Phar::GZ, 압축을 추가하려면 Phar::BZ2, 압축을 제거하려면 Phar::NONE 중 하나여야 합니다.
extension
기본적으로 확장자는 tar 아카이브 압축의 경우 .phar.gz 또는 .phar.bz2이고 tar 아카이브 압축의 경우 .phar.tar.gz 또는 .phar.tar.bz2입니다. 압축 해제의 경우 기본 파일 확장자는 .phar.phar.tar입니다.

반환 값

Phar 개체를 반환하거나 실패 시 null을 반환합니다.


오류/예외

phar.readonly INI 변수가 켜져 있거나 zlib 확장을 사용할 수 없거나 bzip2 확장이 활성화되어 있지 않으면 BadMethodCallException을 던집니다.


변경 로그

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

Examples

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

                  
<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p1 = $p->compress(Phar::GZ); // copies to /path/to/my.phar.gz
$p2 = $p->compress(Phar::BZ2); // copies to /path/to/my.phar.bz2
$p3 = $p2->compress(Phar::NONE); // exception: /path/to/my.phar already exists
?>
                  
                

기타