Phar::__construct
(PHP >= 5.3.0, PECL phar >= 1.0.0)
Phar::__construct — Construct a Phar archive object
Description
public Phar::__construct
( string
$fname
[, int $flags
[, string $alias
]] )Parameters
-
fname
-
Path to an existing Phar archive or to-be-created archive. The file name's extension must contain .phar.
-
flags
-
Flags to pass to parent class RecursiveDirectoryIterator.
-
alias
-
Alias with which this Phar archive should be referred to in calls to stream functionality.
Errors/Exceptions
Throws BadMethodCallException if called twice, UnexpectedValueException if the phar archive can't be opened.
Examples
Example #1 A Phar::__construct() example
<?php
try {
$p = new Phar('/path/to/my.phar', FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::KEY_AS_FILENAME,
'my.phar');
} catch (UnexpectedValueException $e) {
die('Could not open my.phar');
} catch (BadMethodCallException $e) {
echo 'technically, this cannot happen';
}
// this works now
echo file_get_contents('phar://my.phar/example.txt');
// and works as if we had typed
echo file_get_contents('phar:///path/to/my.phar/example.txt');
?>
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для сжатия и архивации
- Phar
- Функция Phar::addEmptyDir() - Add an empty directory to the phar archive
- Функция Phar::addFile() - Add a file from the filesystem to the phar archive
- Функция Phar::addFromString() - Add a file from the filesystem to the phar archive
- Функция Phar::apiVersion() - Returns the api version
- Функция Phar::buildFromDirectory() - Construct a phar archive from the files within a directory.
- Функция Phar::buildFromIterator() - Construct a phar archive from an iterator.
- Функция Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
- Функция Phar::canWrite() - Returns whether phar extension supports writing and creating phars
- Функция Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
- Функция Phar::compressAllFilesBZIP2() - Compresses all files in the current Phar archive using Bzip2 compression
- Функция Phar::compressAllFilesGZ() - Compresses all files in the current Phar archive using Gzip compression
- Функция Phar::compressFiles() - Compresses all files in the current Phar archive
- Функция Phar::__construct() - Construct a Phar archive object
- Функция Phar::convertToData() - Convert a phar archive to a non-executable tar or zip file
- Функция Phar::convertToExecutable() - Convert a phar archive to another executable phar archive file format
- Функция Phar::copy() - Copy a file internal to the phar archive to another new file within the phar
- Функция Phar::count() - Returns the number of entries (files) in the Phar archive
- Функция Phar::createDefaultStub() - Create a phar-file format specific stub
- Функция Phar::decompress() - Decompresses the entire Phar archive
- Функция Phar::decompressFiles() - Decompresses all files in the current Phar archive
- Функция Phar::delMetadata() - Deletes the global metadata of the phar
- Функция Phar::delete() - Delete a file within a phar archive
- Функция Phar::extractTo() - Extract the contents of a phar archive to a directory
- Функция Phar::getMetadata() - Returns phar archive meta-data
- Функция Phar::getModified() - Return whether phar was modified
- Функция Phar::getSignature() - Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive
- Функция Phar::getStub() - Return the PHP loader or bootstrap stub of a Phar archive
- Функция Phar::getSupportedCompression() - Return array of supported compression algorithms
- Функция Phar::getSupportedSignatures() - Return array of supported signature types
- Функция Phar::getVersion() - Return version info of Phar archive
- Функция Phar::hasMetadata() - Returns whether phar has global meta-data
- Функция Phar::interceptFileFuncs() - instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions
- Функция Phar::isBuffering() - Used to determine whether Phar write operations are being buffered, or are flushing directly to disk
- Функция Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
- Функция Phar::isFileFormat() - Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter
- Функция Phar::isValidPharFilename() - Returns whether the given filename is a valid phar filename
- Функция Phar::isWritable() - Returns true if the phar archive can be modified
- Функция Phar::loadPhar() - Loads any phar archive with an alias
- Функция Phar::mapPhar() - Reads the currently executed file (a phar) and registers its manifest
- Функция Phar::mount() - Mount an external path or file to a virtual location within the phar archive
- Функция Phar::mungServer() - Defines a list of up to 4 $_SERVER variables that should be modified for execution
- Функция Phar::offsetExists() - determines whether a file exists in the phar
- Функция Phar::offsetGet() - Gets a PharFileInfo object for a specific file
- Функция Phar::offsetSet() - set the contents of an internal file to those of an external file
- Функция Phar::offsetUnset() - remove a file from a phar
- Функция Phar::running() - Returns the full path on disk or full phar URL to the currently executing Phar archive
- Функция Phar::setAlias() - Set the alias for the Phar archive
- Функция Phar::setDefaultStub() - Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader
- Функция Phar::setMetadata() - Sets phar archive meta-data
- Функция Phar::setSignatureAlgorithm() - set the signature algorithm for a phar and apply it.
- Функция Phar::setStub() - Used to set the PHP loader or bootstrap stub of a Phar archive
- Функция Phar::startBuffering() - Start buffering Phar write operations, do not modify the Phar object on disk
- Функция Phar::stopBuffering() - Stop buffering write requests to the Phar archive, and save changes to disk
- Функция Phar::uncompressAllFiles() - Uncompresses all files in the current Phar archive
- Функция Phar::unlinkArchive() - Completely remove a phar archive from disk and from memory
- Функция Phar::webPhar() - mapPhar for web-based phars. front controller for web applications
Коментарии
It's not possible to create a new archive when safe_mode is enabled! You simply return a 'Phar creation or opening failed' error.
This applies to Phar and PharData in PHP 5.3.2.
Zip support seems to be shaky, in that just attempting to open a Zip file (created by 7-Zip) with both the 'zlib' and 'zip' extensions enabled renders the following error:
Error: Cannot convert phar archive "C:/Development/webdir/public_html/TestPhar.zip", unable to open entry "TestPhar/" contents: phar error: internal corruption of zip-based phar "C:/Development/webdir/public_html/TestPhar.zip" (local header of file "TestPhar/" does not match central directory)
Stick to GZ's and BZ2's (but don't forget to enable the BZ2 extension if necessary).
Phar can ONLY open executable Phar's and PharData can ONLY open non-executable Phar's. Both have the ability to convert between the two formats.
However, you can reference a file within a Phar regardless of whether it's executable using the Phar stream wrapper (file_get_contents('phar://<Phar file>/subdirectory/subdirectory/somefile.txt')).
Dustin Oprea