PHP: PharData::convertToExecutable - Manual (original) (raw)
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
PharData::convertToExecutable — Convert a non-executable tar/zip archive to an executable phar archive
Description
Note:
This method requires the php.ini setting
phar.readonlyto be set to0in order to work for Pharobjects. Otherwise, a PharException will be thrown.
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.
Parameters
format
This should be one of Phar::PHAR, Phar::TAR, or Phar::ZIP. If set to [null](reserved.constants.php#constant.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, andPhar::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.
Return Values
The method returns a Phar object on success, or [null](reserved.constants.php#constant.null) on failure.
Changelog
| Version | Description |
|---|---|
| 8.0.0 | format, compression, and localName are now nullable. |
Examples
Example #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 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>p</mi><mi>h</mi><mi>a</mi><mi>r</mi><mo>=</mo></mrow><annotation encoding="application/x-tex">phar = </annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8889em;vertical-align:-0.1944em;"></span><span class="mord mathnormal">p</span><span class="mord mathnormal">ha</span><span class="mord mathnormal" style="margin-right:0.02778em;">r</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span></span></span></span>tarphar->convertToExecutable(Phar::PHAR); // creates myphar.phar <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>p</mi><mi>h</mi><mi>a</mi><mi>r</mi><mo>−</mo><mo>></mo><mi>s</mi><mi>e</mi><mi>t</mi><mi>S</mi><mi>t</mi><mi>u</mi><mi>b</mi><mo stretchy="false">(</mo></mrow><annotation encoding="application/x-tex">phar->setStub(</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8889em;vertical-align:-0.1944em;"></span><span class="mord mathnormal">p</span><span class="mord mathnormal">ha</span><span class="mord mathnormal" style="margin-right:0.02778em;">r</span><span class="mord">−</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">></span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal">se</span><span class="mord mathnormal">tSt</span><span class="mord mathnormal">u</span><span class="mord mathnormal">b</span><span class="mopen">(</span></span></span></span>phar->createDefaultStub('cli.php', 'web/index.php')); // creates myphar.phar.tgz <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>c</mi><mi>o</mi><mi>m</mi><mi>p</mi><mi>r</mi><mi>e</mi><mi>s</mi><mi>s</mi><mi>e</mi><mi>d</mi><mo>=</mo></mrow><annotation encoding="application/x-tex">compressed = </annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8889em;vertical-align:-0.1944em;"></span><span class="mord mathnormal">co</span><span class="mord mathnormal">m</span><span class="mord mathnormal">p</span><span class="mord mathnormal">resse</span><span class="mord mathnormal">d</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span></span></span></span>tarphar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz'); } catch (Exception $e) { // handle the error here } ?>
See Also
- 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
Found A Problem?
There are no user contributed notes for this page.