Phar::compressFiles
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::compressFiles — 現在の Phar アーカイブ内のすべてのファイルを圧縮する
説明
public function Phar::compressFiles(
int $compression):
void
注意:
このメソッドは、php.ini の phar.readonly
が 0 でないと Phar
オブジェクトで動作しません。それ以外の場合は
PharException がスローされます。
tar 形式の phar アーカイブでは、このメソッドは
BadMethodCallException をスローします。
というのも、tar ファイルフォーマットではアーカイブ内の個別のファイルの圧縮をサポートしていないからです。
Phar::compress() を使用して、tar 形式の phar アーカイブ全体を圧縮します。
zip 形式および phar 形式の phar アーカイブでは、
このメソッドは Phar アーカイブ内のすべてのファイルを指定した方式で圧縮します。
この機能を使用するには、zlib
拡張モジュールあるいは bzip2
拡張モジュールが有効になっている必要があります。さらに、
もし既に bzip2/zlib で圧縮されているファイルがある場合は、
いったんその圧縮を解除するために対応する拡張モジュールが必要となります。
この関数は phar の内容を変更するので、使用するためには INI 設定
phar.readonly
が off になっている必要があります。
パラメータ
compression
-
圧縮を行う場合は Phar::GZ あるいは
Phar::BZ2、圧縮を解除するためには Phar::NONE
のいずれかを指定しなければなりません。
例
例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)