そのまんま!

Phar->compressAllFilesGZ

(no version information, might be only in CVS)

Phar->compressAllFilesGZ -- 現在の Phar アーカイブ内のすべてのファイルを Gzip で圧縮する

説明

bool Phar->compressAllFilesGZ ( void )

このメソッドは、Phar アーカイブ内のすべてのファイルを gzip で圧縮します。この機能を使用するには zlib 拡張モジュールが有効になっていなければなりません。 また、すでに bzip2 で圧縮されているファイルを処理するためには、 まず bzip2 を伸張してから gzip で再圧縮するため、 bzip2 拡張モジュールが有効になっていなければなりません。 この関数は phar の内容を変更するので、使用するには INI 設定 phar.readonly が off になっていなければなりません。

エラー / 例外

INI 設定 phar.readonly が on の場合、zlib 拡張モジュールが使用できない場合、あるいは bzip2 で圧縮されたファイルがあるのに bzip2 拡張モジュールが使用できない場合に BadMethodCallException をスローします。

例 1. Phar->compressAllFilesGZ() の例

<?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->isCompressedBZIP2());
    
var_dump($file->isCompressedGZ());
}
$p->compressAllFilesGZ();
foreach (
$p as $file) {
    
var_dump($file->getFileName());
    
var_dump($file->isCompressed());
    
var_dump($file->isCompressedBZIP2());
    
var_dump($file->isCompressedGZ());
}
?>

上の例の出力は以下となります。

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

参考

PharFileInfo->getCompressedSize()
PharFileInfo->isCompressedGZ()
PharFileInfo->isCompressed()
PharFileInfo->isCompressedGZ()
PharFileInfo->isCompressed()
Phar->uncompressAllFiles()
Phar->compressAllFilesBZIP2()