PharData::compressFiles
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
PharData::compressFiles — Compresses all files in the current tar/zip archive
Description
public function PharData::compressFiles(
int $compression):
void
For Zip-based archives, this method compresses all files in the
archive using the specified compression.
The zlib or bzip2
extensions must be enabled to take advantage of this feature. In addition, if any files
are already compressed using bzip2/zlib compression, the respective extension must be
enabled in order to decompress the files prior to re-compressing.
Return Values
No value is returned.
Errors/Exceptions
Throws BadMethodCallException if
the phar.readonly
INI variable is on, the zlib
extension is not available, or if any files are compressed using
bzip2 compression and the bzip2 extension
is not enabled.
Examples
Example #1 A PharData::compressFiles() example
<?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));
}
?>
The above example will output:
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)