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

# Phar::compressAllFilesGZ

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

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

### 説明

public Phar::compressAllFilesGZ ( void ) : bool

> 注意:

> このメソッドは、phar 拡張モジュールバージョン 2.0.0 で削除されました。 今後は Phar::compress()、 Phar::decompress()、Phar::compressFiles() および Phar::decompressFiles() をご利用ください。

> 注意:

> このメソッドは、php.ini の phar.readonly が 0 でないと Phar オブジェクトで動作しません。それ以外の場合は PharException がスローされます。

tar 形式の phar アーカイブの場合は、このメソッドはアーカイブ全体を gzip で圧縮します。 できあがったファイルは gunzip コマンドで処理することもできますし、 Phar 拡張モジュールで直接透過的に使用することもできます。

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

### 返り値

成功した場合に `TRUE` を、失敗した場合に `FALSE` を返します。

### エラー / 例外

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() - Phar アーカイブ内での実際のファイルの大きさ (圧縮された状態) を返す
- PharFileInfo::isCompressedBZIP2() - エントリが bzip2 で圧縮されているかどうかを調べる
- PharFileInfo::isCompressed() - エントリが圧縮されているかどうかを調べる
- PharFileInfo::isCompressedGZ() - エントリが gz で圧縮されているかどうかを調べる
- PharFileInfo::setCompressedBZIP2() - phar 内の現在の Phar エントリを、Bzip2 で圧縮する
- PharFileInfo::setUncompressed() - phar 内の現在の Phar エントリが圧縮されている場合に、それを展開する
- PharFileInfo::setCompressedGZ() - phar 内の現在の Phar エントリを、gz で圧縮する
- Phar::canCompress() - phar 拡張モジュールが zlib あるいは bzip2 による圧縮をサポートしているかどうかを返す
- Phar::isCompressed() - phar アーカイブ全体が (.tar.gz/tar.bz などで) 圧縮されている場合に Phar::GZ あるいは PHAR::BZ2 を返す
- Phar::compressAllFilesBZIP2() - 現在の Phar アーカイブ内のすべてのファイルを Bzip2 で圧縮する
- Phar::getSupportedCompression() - サポートする圧縮アルゴリズムの配列を返す
- Phar::uncompressAllFiles() - 現在の Phar アーカイブ内のすべてのファイルを展開する