Phar::compress
Phar::compressAllFilesGZ
Phar
PHP Manual

# Phar::compressAllFilesBZIP2

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

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

### 説明

public bool Phar::compressAllFilesBZIP2 ( void )

> 注意:

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

> 注意:

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

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

### 返り値

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

### エラー / 例外

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

### 例

例1 Phar::compressAllFilesBZIP2() の例

`<?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->compressAllFilesBZIP2();
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(true)
    bool(false)
    string(11) "myfile2.txt"
    bool(true)
    bool(true)
    bool(false)

### 参考

- 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::compressAllFilesGZ() - 現在の Phar アーカイブ内のすべてのファイルを Gzip で圧縮する
- Phar::getSupportedCompression() - サポートする圧縮アルゴリズムの配列を返す
- Phar::uncompressAllFiles() - 現在の Phar アーカイブ内のすべてのファイルを展開する

Phar::compress
Phar::compressAllFilesGZ
Phar
PHP Manual