Phar::compressFiles

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

Phar::compressFiles — 현재 Phar 아카이브의 모든 파일을 압축합니다.


설명

public Phar::compressFiles(int $compression): void

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

tar 기반 phar 아카이브의 경우 이 메서드는 BadMethodCallException을 발생시킵니다. tar 아카이브 내의 개별 파일 압축은 파일 형식에서 지원되지 않기 때문입니다. Phar::compress()를 사용하여 전체 tar 기반 phar 아카이브를 압축합니다.

Zip 기반 및 phar 기반 phar 아카이브의 경우 이 메서드는 지정된 압축을 사용하여 Phar 아카이브의 모든 파일을 압축합니다. 이 기능을 활용하려면 zlib 또는 bzip2 확장을 활성화해야 합니다. 또한 bzip2/zlib 압축을 사용하여 이미 압축된 파일이 있는 경우 다시 압축하기 전에 파일을 압축 해제하려면 해당 확장자를 활성화해야 합니다. phar의 내용을 수정하는 모든 기능과 마찬가지로 성공하려면 phar.readonly INI 변수가 꺼져 있어야 합니다.


매개변수

compression
압축은 Phar::GZ, 압축을 추가하려면 Phar::BZ2, 압축을 제거하려면 Phar::NONE 중 하나여야 합니다.

반환 값

값이 반환되지 않습니다.


오류/예외

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


Examples

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

                  
<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
?>
                  
                

위의 예는 다음을 출력합니다.

string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)
string(10) "myfile.txt"
int(4096)
bool(false)
bool(true)
string(11) "myfile2.txt"
int(4096)
bool(false)
bool(true)
                

기타