PharData::convertToExecutable
(PHP >= 5.3.0, PECL phar >= 2.0.0)
PharData::convertToExecutable — Convert a non-executable tar/zip archive to an executable phar archive
Описание
Замечание:
Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.
This method is used to convert a non-executable tar or zip archive to an executable phar archive. Any of the three executable file formats (phar, tar or zip) can be used, and whole-archive compression can also be performed.
If no changes are specified, this method throws a BadMethodCallException.
If successful, the method creates a new archive on disk and returns a Phar object. The old archive is not removed from disk, and should be done manually after the process has finished.
Список параметров
-
format
-
This should be one of Phar::PHAR, Phar::TAR, or Phar::ZIP. If set to
NULL
, the existing file format will be preserved. -
compression
-
This should be one of Phar::NONE for no whole-archive compression, Phar::GZ for zlib-based compression, and Phar::BZ2 for bzip-based compression.
-
extension
-
This parameter is used to override the default file extension for a converted archive. Note that all zip- and tar-based phar archives must contain .phar in their file extension in order to be processed as a phar archive.
If converting to a phar-based archive, the default extensions are .phar, .phar.gz, or .phar.bz2 depending on the specified compression. For tar-based phar archives, the default extensions are .phar.tar, .phar.tar.gz, and .phar.tar.bz2. For zip-based phar archives, the default extension is .phar.zip.
Возвращаемые значения
The method returns a Phar object on success and throws an exception on failure.
Ошибки
This method throws BadMethodCallException when unable to compress, an unknown compression method has been specified, the requested archive is buffering with Phar::startBuffering() and has not concluded with Phar::stopBuffering(), an UnexpectedValueException if write support is disabled, and a PharException if any problems are encountered during the phar creation process.
Примеры
Пример #1 A PharData::convertToExecutable() example
Using PharData::convertToExecutable():
<?php
try {
$tarphar = new PharData('myphar.tar');
// convert it to the phar file format
// note that myphar.tar is *not* unlinked
$phar = $tarphar->convertToExecutable(Phar::PHAR); // creates myphar.phar
$phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
// creates myphar.phar.tgz
$compressed = $tarphar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
// handle the error here
}
?>
Смотрите также
- Phar::convertToExecutable() - Convert a phar archive to another executable phar archive file format
- Phar::convertToData() - Convert a phar archive to a non-executable tar or zip file
- PharData::convertToData() - Convert a phar archive to a non-executable tar or zip file
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для сжатия и архивации
- Phar
- Функция PharData::addEmptyDir() - Add an empty directory to the tar/zip archive
- Функция PharData::addFile() - Add a file from the filesystem to the tar/zip archive
- Функция PharData::addFromString() - Add a file from the filesystem to the tar/zip archive
- Функция PharData::buildFromDirectory() - Construct a tar/zip archive from the files within a directory.
- Функция PharData::buildFromIterator() - Construct a tar or zip archive from an iterator.
- Функция PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
- Функция PharData::compressFiles() - Compresses all files in the current tar/zip archive
- Функция PharData::__construct() - Construct a non-executable tar or zip archive object
- Функция PharData::convertToData() - Convert a phar archive to a non-executable tar or zip file
- Функция PharData::convertToExecutable() - Convert a non-executable tar/zip archive to an executable phar archive
- Функция PharData::copy() - Copy a file internal to the phar archive to another new file within the phar
- Функция PharData::decompress() - Decompresses the entire Phar archive
- Функция PharData::decompressFiles() - Decompresses all files in the current zip archive
- Функция PharData::delMetadata() - Deletes the global metadata of a zip archive
- Функция PharData::delete() - Delete a file within a tar/zip archive
- Функция PharData::extractTo() - Extract the contents of a tar/zip archive to a directory
- Функция PharData::isWritable() - Returns true if the tar/zip archive can be modified
- Функция PharData::offsetSet() - set the contents of a file within the tar/zip to those of an external file or string
- Функция PharData::offsetUnset() - remove a file from a tar/zip archive
- Функция PharData::setAlias() - dummy function (Phar::setAlias is not valid for PharData)
- Функция PharData::setDefaultStub() - dummy function (Phar::setDefaultStub is not valid for PharData)
- Функция Phar::setMetadata() - Sets phar archive meta-data
- Функция Phar::setSignatureAlgorithm() - set the signature algorithm for a phar and apply it. The
- Функция PharData::setStub() - dummy function (Phar::setStub is not valid for PharData)
Коментарии
It doesn't work
Fatal error: Uncaught exception 'UnexpectedValueException' with message 'Cannot convert phar archive "C:/xxxxxxxxxxx.zip", unable to open entry "sub-directory/" contents: phar error: internal corruption of zip-based phar "C:/xxxxxxxxxxx.zip" (local header of file sub-directory/" does not match central directory)' in C:\xxxxxxxxxxx.php on line 5