| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 
 | <?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="phar.converttoexecutable" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
 <refnamediv>
  <refname>Phar::convertToExecutable</refname>
  <refpurpose>Convert a phar archive to another executable phar archive file format</refpurpose>
 </refnamediv>
 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis role="Phar">
   <modifier>public</modifier> <type class="union"><type>Phar</type><type>null</type></type><methodname>Phar::convertToExecutable</methodname>
   <methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>format</parameter><initializer>&null;</initializer></methodparam>
   <methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>compression</parameter><initializer>&null;</initializer></methodparam>
   <methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>extension</parameter><initializer>&null;</initializer></methodparam>
  </methodsynopsis>
  &phar.write;
  <para>
   This method is used to convert a phar archive to another file format.  For instance,
   it can be used to create a tar-based executable phar archive from a zip-based
   executable phar archive, or from an executable phar archive in the phar file format.  In
   addition, it can be used to apply whole-archive compression to a tar or phar-based
   archive.
  </para>
  <para>
   If no changes are specified, this method throws a <classname>BadMethodCallException</classname>.
  </para>
  <para>
   If successful, the method creates a new archive on disk and returns a <classname>Phar</classname>
   object.  The old archive is not removed from disk, and should be done manually after
   the process has finished.
  </para>
 </refsect1>
 <refsect1 role="parameters">
  &reftitle.parameters;
  <para>
   <variablelist>
    <varlistentry>
     <term><parameter>format</parameter></term>
     <listitem>
      <para>
       This should be one of <literal>Phar::PHAR</literal>, <literal>Phar::TAR</literal>,
       or <literal>Phar::ZIP</literal>.  If set to &null;, the existing file format
       will be preserved.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>compression</parameter></term>
     <listitem>
      <para>
       This should be one of <literal>Phar::NONE</literal> for no whole-archive
       compression, <literal>Phar::GZ</literal> for zlib-based compression, and
       <literal>Phar::BZ2</literal> for bzip-based compression.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>extension</parameter></term>
     <listitem>
      <para>
       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
       <literal>.phar</literal> in their file extension in order to be processed as a
       phar archive.
      </para>
      <para>
       If converting to a phar-based archive, the default extensions are
       <literal>.phar</literal>, <literal>.phar.gz</literal>, or <literal>.phar.bz2</literal>
       depending on the specified compression.  For tar-based phar archives, the
       default extensions are <literal>.phar.tar</literal>, <literal>.phar.tar.gz</literal>,
       and <literal>.phar.tar.bz2</literal>.  For zip-based phar archives, the
       default extension is <literal>.phar.zip</literal>.
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>
 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   The method returns a <classname>Phar</classname> object on success,
   or &null; on failure.
  </para>
 </refsect1>
 <refsect1 role="errors">
  &reftitle.errors;
  <para>
   This method throws <classname>BadMethodCallException</classname> when unable
   to compress, an unknown compression method has been specified, the requested
   archive is buffering with <function>Phar::startBuffering</function> and
   has not concluded with <function>Phar::stopBuffering</function>, an
   <classname>UnexpectedValueException</classname> if write support is disabled,
   and a <classname>PharException</classname> if any problems are encountered
   during the phar creation process.
  </para>
 </refsect1>
 <refsect1 role="changelog">
  &reftitle.changelog;
  <informaltable>
   <tgroup cols="2">
    <thead>
     <row>
      <entry>&Version;</entry>
      <entry>&Description;</entry>
     </row>
    </thead>
    <tbody>
     <row>
      <entry>8.0.0</entry>
      <entry>
       <parameter>format</parameter>, <parameter>compression</parameter>, and <parameter>extension</parameter> are now nullable.
      </entry>
     </row>
    </tbody>
   </tgroup>
  </informaltable>
 </refsect1>
 <refsect1 role="examples">
  &reftitle.examples;
  <para>
   <example>
    <title>A <function>Phar::convertToExecutable</function> example</title>
    <para>
     Using Phar::convertToExecutable():
    </para>
    <programlisting role="php">
<![CDATA[
<?php
try {
    $tarphar = new Phar('myphar.phar.tar');
    // convert it to the phar file format
    // note that myphar.phar.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 = $phar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
    // handle the error here
}
?>
]]>
    </programlisting>
   </example>
  </para>
 </refsect1>
 <refsect1 role="seealso">
  &reftitle.seealso;
  <para>
   <simplelist>
    <member><function>Phar::convertToData</function></member>
    <member><function>PharData::convertToExecutable</function></member>
    <member><function>PharData::convertToData</function></member>
   </simplelist>
  </para>
 </refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
 |