Files
php-doc-ru/reference/phar/PharData/convertToExecutable.xml
Sergey Panteleev 6d43fd64d7 Исправление форматирования
[skip-spellcheck]
[skip-lint]
2022-12-27 03:42:36 +03:00

181 lines
7.3 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: f03806fcd8fe03a0501bd40b6e3939ff6589a1d2 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="phardata.converttoexecutable" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>PharData::convertToExecutable</refname>
<refpurpose>Конвертация tar/zip-архива с данными в запускаемый phar-архив</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="PharData">
<modifier>public</modifier> <type class="union"><type>Phar</type><type>null</type></type><methodname>PharData::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>
Этот метод используется для конвертации незапускаемого tar/zip-архива а
запускаемый phar-архив. Может быть использован любой из трёх запускаемых форматов
(phar, tar или zip). Также допустимо сжатие архива целиком.
</para>
<para>
Если изменения не указаны, этот метод бросает исключение <classname>BadMethodCallException</classname>.
</para>
<para>
В случае успешного выполнения, этот метод создаёт новый архив на диске и возвращает объект
<classname>Phar</classname>. Старый архив остаётся нетронутым.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>format</parameter></term>
<listitem>
<para>
Одна из констант: <literal>Phar::PHAR</literal>, <literal>Phar::TAR</literal>,
или <literal>Phar::ZIP</literal>. Если задано &null;, то будет сохранён текущий формат.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>compression</parameter></term>
<listitem>
<para>
Одна из констант: <literal>Phar::NONE</literal> (без сжатия всего архива),
<literal>Phar::GZ</literal> (zlib сжатие),
<literal>Phar::BZ2</literal> (bzip сжатие).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>extension</parameter></term>
<listitem>
<para>
Этот параметр используется для явного задания расширения для нового архива.
Обратите внимание, что для того, чтобы обрабатываться как phar-архив,
файлы должны в своём расширении иметь <literal>.phar</literal>.
</para>
<para>
При конвертации в phar-архива, расширение по умолчанию
<literal>.phar</literal>, <literal>.phar.gz</literal> или <literal>.phar.bz2</literal>,
в зависимости от заданного типа сжатия. Для tar-архивов, расширение по умолчанию
<literal>.phar.tar</literal>, <literal>.phar.tar.gz</literal>,
и <literal>.phar.tar.bz2</literal>. Для zip-архивов расширение по умолчанию
<literal>.phar.zip</literal>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Этот метод возвращает объект <classname>Phar</classname> и &null; в случае возникновения ошибки.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
Метод выбрасывает исключение <classname>BadMethodCallException</classname> если
не может произвести сжатие, либо если задан неизвестный алгоритм сжатия, для архива
включена буферизация с помощью <function>Phar::startBuffering</function>, а
метод <function>Phar::stopBuffering</function> не вызывался. Выбрасывается исключение
<classname>UnexpectedValueException</classname>, если запись запрещена.
И выбрасывается <classname>PharException</classname>, если возникли проблемы записи
на диск.
</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> и <parameter>localName</parameter> теперь допускают значение null.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример использования <function>PharData::convertToExecutable</function></title>
<para>
Используем PharData::convertToExecutable():
</para>
<programlisting role="php">
<![CDATA[
<?php
try {
$tarphar = new PharData('myphar.tar');
// конвертируем в формат phar
// обратите внимание, что myphar.tar *не* удаляется
$phar = $tarphar->convertToExecutable(Phar::PHAR); // creates myphar.phar
$phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
// создаём myphar.phar.tgz
$compressed = $tarphar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
// обработка ошибок
}
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>Phar::convertToExecutable</function></member>
<member><function>Phar::convertToData</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
-->