Phar::compress
(No version information available, might be only in CVS)
Phar::compress — Compresses the entire Phar archive using Gzip or Bzip2 compression
Описание
Замечание: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.
For tar-based and phar-based phar archives, this method compresses the entire archive using gzip compression or bzip2 compression. The resulting file can be processed with the gunzip command/bunzip command, or accessed directly and transparently with the Phar extension.
For Zip-based phar archives, this method fails with an exception. The zlib extension must be enabled to compress with gzip compression, the bzip2 extension must be enabled in order to compress with bzip2 compression. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.
In addition, this method automatically renames the archive, appending .gz, .bz2 or removing the extension if passed Phar::NONE to remove compression.
A Phar object is returned.
Список параметров
- compression
-
Compression must be one of Phar::GZ, Phar::BZ2 to add compression, or Phar::NONE to remove compression.
Errors/Exceptions
Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or the bzip2 extension is not enabled.
Примеры
Пример #1 A Phar::compress() example
<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p1 = $p->compress(Phar::GZ); // copies to /path/to/my.phar.gz
$p2 = $p->compress(Phar::BZ2); // copies to /path/to/my.phar.bz2
$p3 = $p2->compress(Phar::NONE); // exception: /path/to/my.phar already exists
?>
Смотрите также
- PharFileInfo::getCompressedSize()
- PharFileInfo::isCompressedBZIP2()
- PharFileInfo::isCompressed()
- PharFileInfo::isCompressedGZ()
- PharFileInfo::setCompressedBZIP2()
- PharFileInfo::setUncompressed()
- PharFileInfo::setCompressedGZ()
- PharData::compress()
- Phar::canCompress()
- Phar::isCompressed()
- Phar::compressAllFilesBZIP2()
- Phar::getSupportedCompression()
- Phar::uncompressAllFiles()
- Add an empty directory to the phar archive
- Add a file from the filesystem to the phar archive
- Add a file from the filesystem to the phar archive
- Returns the api version
- Construct a phar archive from the files within a directory.
- Construct a phar archive from an iterator.
- Returns whether phar extension supports compression using either zlib or bzip2
- Returns whether phar extension supports writing and creating phars
- Compresses the entire Phar archive using Gzip or Bzip2 compression
- Compresses all files in the current Phar archive using Bzip2 compression
- Compresses all files in the current Phar archive using Gzip compression
- Compresses all files in the current Phar archive
- Construct a Phar archive object
- Convert a phar archive to a non-executable tar or zip file
- Convert a phar archive to another executable phar archive file format
- Copy a file internal to the phar archive to another new file within the phar
- Returns the number of entries (files) in the Phar archive
- Create a phar-file format specific stub
- Decompresses the entire Phar archive
- Decompresses all files in the current Phar archive
- Deletes the global metadata of the phar
- Delete a file within a phar archive
- Extract the contents of a phar archive to a directory
- Returns phar archive meta-data
- Return whether phar was modified
- Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive
- Return the PHP loader or bootstrap stub of a Phar archive
- Return array of supported compression algorithms
- Return array of supported signature types
- Return version info of Phar archive
- Returns whether phar has global meta-data
- instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions
- Used to determine whether Phar write operations are being buffered, or are flushing directly to disk
- Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
- Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter
- Returns whether the given filename is a valid phar filename
- Returns true if the phar archive can be modified
- Loads any phar archive with an alias
- Reads the currently executed file (a phar) and registers its manifest
- Mount an external path or file to a virtual location within the phar archive
- Defines a list of up to 4 $_SERVER variables that should be modified for execution
- determines whether a file exists in the phar
- Gets a PharFileInfo object for a specific file
- set the contents of an internal file to those of an external file
- remove a file from a phar
- Returns the full path on disk or full phar URL to the currently executing Phar archive
- Set the alias for the Phar archive
- Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader
- Sets phar archive meta-data
- set the signature algorithm for a phar and apply it.
- Used to set the PHP loader or bootstrap stub of a Phar archive
- Start buffering Phar write operations, do not modify the Phar object on disk
- Stop buffering write requests to the Phar archive, and save changes to disk
- Uncompresses all files in the current Phar archive
- Completely remove a phar archive from disk and from memory
- mapPhar for web-based phars. front controller for web applications
Коментарии
For those who want the benefit of having a small compressed PHAR archive but don’t want to suffer the performance loss, use php_strip_whitespace when adding files to the archive. If your code has plenty of whitespace, docbocks, and single-line comments this function can greatly decrease archive size without the performance loss.
<?php
$sDir = 'application';
$oPhar = new Phar ('app.phar');
$oDir = new RecursiveIteratorIterator (new RecursiveDirectoryIterator ($sDir), RecursiveIteratorIterator::SELF_FIRST);
foreach ($oDir as $sFile) {
if ( preg_match ('/\\.php$/i', $sFile) ) {
$oPhar->addFromString (substr ($sFile, strlen ($sDir) + 1), php_strip_whitespace ($sFile));
}
}
?>