mirror of
https://github.com/php/doc-ru.git
synced 2025-08-16 18:22:04 +00:00
new
git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@343619 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
121
reference/phar/Phar/createDefaultStub.xml
Normal file
121
reference/phar/Phar/createDefaultStub.xml
Normal file
@ -0,0 +1,121 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="phar.createdefaultstub">
|
||||
<refnamediv>
|
||||
<refname>Phar::createDefaultStub</refname>
|
||||
<refpurpose>Создать загрузчик в формате phar-архива</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>final</modifier> <modifier>public</modifier> <modifier>static</modifier> <type>string</type><methodname>Phar::createDefaultStub</methodname>
|
||||
<methodparam choice="opt"><type>string</type><parameter>indexfile</parameter></methodparam>
|
||||
<methodparam choice="opt"><type>string</type><parameter>webindexfile</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
|
||||
<para>
|
||||
Этот метод создает код загрузчика (stub) в специфичном для phar-архива формате
|
||||
и не предназначеный для использования с файловыми архивами на основе tar или zip.
|
||||
</para>
|
||||
<para>
|
||||
Phar-архивы содержат загрузчик (<literal>stub</literal>), написанный на
|
||||
PHP, который запускается при запуске архива, когда его подключают через include:
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
include 'myphar.phar';
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
или просто запускают:
|
||||
<screen>
|
||||
<![CDATA[
|
||||
php myphar.phar
|
||||
]]>
|
||||
</screen>
|
||||
</para>
|
||||
<para>
|
||||
Этот метод предоставляет простой способ для создания загрузчика, который будет
|
||||
отрабатывать при запуске phar-архива. Кроме того, можно указывать разные
|
||||
файлы для запуска phar-архива через веб-сервер и через командрую строку.
|
||||
Загрузчик также вызывает <function>Phar::interceptFileFuncs</function>
|
||||
для простого создания приложений PHP с доступом к файловой системе.
|
||||
Если расширение phar отсутствует, то загрузчик распакует phar-архив во временную
|
||||
директорию и запустит приложение оттуда. Функция завершения работы удалит все
|
||||
временные файлы.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
Возвращает текст с кодом загрузчика (stub), который позволит Phar-архиву запускаться
|
||||
независимо от того, подключено ли расширение Phar или нет.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="errors">
|
||||
&reftitle.errors;
|
||||
<para>
|
||||
Бросит исключение <classname>UnexpectedValueException</classname>, если любой
|
||||
из параметров будет длинее 400 байт.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::createDefaultStub</function></title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
try {
|
||||
$phar = new Phar('myphar.phar');
|
||||
$phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
|
||||
} catch (Exception $e) {
|
||||
// обрабатываем ошибки
|
||||
}
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::setStub</function></member>
|
||||
<member><function>Phar::getStub</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
|
||||
-->
|
112
reference/phar/Phar/delMetadata.xml
Normal file
112
reference/phar/Phar/delMetadata.xml
Normal file
@ -0,0 +1,112 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xml:id="phar.delmetadata" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<refnamediv>
|
||||
<refname>Phar::delMetadata</refname>
|
||||
<refpurpose>Удалить глобальные метаданные в архиве phar</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Phar::delMetadata</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
&phar.write;
|
||||
|
||||
<para>
|
||||
Удаляет глобальные метаданные в архиве phar
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
Возвращает &true; в случае успеха, но лучше использовать проверку исключений.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="errors">
|
||||
&reftitle.errors;
|
||||
<para>
|
||||
Бросает исключение <classname>PharException</classname> в случае ошибки при
|
||||
сохранении изменений на диск.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::delMetaData</function></title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
try {
|
||||
$phar = new Phar('myphar.phar');
|
||||
var_dump($phar->getMetadata());
|
||||
$phar->setMetadata("hi there");
|
||||
var_dump($phar->getMetadata());
|
||||
$phar->delMetadata();
|
||||
var_dump($phar->getMetadata());
|
||||
} catch (Exception $e) {
|
||||
// handle errors
|
||||
}
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
&example.outputs;
|
||||
<screen>
|
||||
<![CDATA[
|
||||
NULL
|
||||
string(8) "hi there"
|
||||
NULL
|
||||
]]>
|
||||
</screen>
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::getMetadata</function></member>
|
||||
<member><function>Phar::setMetadata</function></member>
|
||||
<member><function>Phar::hasMetadata</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
|
||||
-->
|
135
reference/phar/Phar/extractTo.xml
Normal file
135
reference/phar/Phar/extractTo.xml
Normal file
@ -0,0 +1,135 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: e4725d85c5d955053a090d2e14fc5c5d446dc128 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xml:id="phar.extractto" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<refnamediv>
|
||||
<refname>Phar::extractTo</refname>
|
||||
<refpurpose>Извлечь содержимое phar-архива в директорию</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Phar::extractTo</methodname>
|
||||
<methodparam><type>string</type><parameter>pathto</parameter></methodparam>
|
||||
<methodparam choice="opt"><type>string|array</type><parameter>files</parameter></methodparam>
|
||||
<methodparam choice="opt"><type>bool</type><parameter>overwrite</parameter><initializer>false</initializer></methodparam>
|
||||
</methodsynopsis>
|
||||
|
||||
<para>
|
||||
Извлекает все файлы phar-архива на диск. Извлеченные файлы и директории сохраняют
|
||||
все разрешения, которые у них были. Опциональные параметры позволяют контролировать,
|
||||
какие именно файлы извлекать и нужно ли перезаписывать уже существующие.
|
||||
Второй параметр <parameter>files</parameter> может быть как именем файла, так и
|
||||
путем директории, которые надо извлекать. По умолчанию, уже существующие на диске
|
||||
файлы перезаписываться не будут. Для указания, что нужно использовать перезапись,
|
||||
используется третий параметр.
|
||||
Этот метод аналогичен методу <function>ZipArchive::extractTo</function>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>pathto</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Путь, по которому необходимо сохраните извлеченные файлы (<parameter>files</parameter>)
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>files</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Имя файла или директории, которые надо извлечь. Либо архив с именами файлов/директорий
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>overwrite</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Установите в &true;, если необходимо перезаписывать уже существующие файлы
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
Возвращает &true; в случае успеха. Но лучше использовать механизм перехвата исключений для контроля успешности.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="errors">
|
||||
&reftitle.errors;
|
||||
<para>
|
||||
Бросает исключение <classname>PharException</classname> в случае ошибки записи на диск.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::extractTo</function></title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
try {
|
||||
$phar = new Phar('myphar.phar');
|
||||
$phar->extractTo('/full/path'); // извлечь все файлы
|
||||
$phar->extractTo('/another/path', 'file.txt'); // извлечь только file.txt
|
||||
$phar->extractTo('/this/path',
|
||||
array('file1.txt', 'file2.txt')); // извлечь два указанных файла
|
||||
$phar->extractTo('/third/path', null, true); // извлечь все файлы, использовать перезапись
|
||||
} catch (Exception $e) {
|
||||
// handle errors
|
||||
}
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>PharData::extractTo</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
|
||||
-->
|
105
reference/phar/Phar/getMetadata.xml
Normal file
105
reference/phar/Phar/getMetadata.xml
Normal file
@ -0,0 +1,105 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="phar.getmetadata">
|
||||
<refnamediv>
|
||||
<refname>Phar::getMetadata</refname>
|
||||
<refpurpose>Извлечь мета-данные phar-архива</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>mixed</type><methodname>Phar::getMetadata</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
|
||||
<para>
|
||||
Возвращает мета-данные phar-архива. Мета-данными может быть любая переменная PHP, которая может быть сериализована.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
Без параметров.
|
||||
</para>
|
||||
</refsect1>
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
любая переменная PHP, которая может быть сериализована и сохранена как мета-данные
|
||||
Phar-архива, либо &null;, если мета-данные отсутствуют.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::getMetadata</function></title>
|
||||
<para>
|
||||
</para>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
// Убедимся, что архим не существует
|
||||
@unlink('brandnewphar.phar');
|
||||
try {
|
||||
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
|
||||
$p['file.php'] = '<?php echo "hello";';
|
||||
$p->setMetadata(array('bootstrap' => 'file.php'));
|
||||
var_dump($p->getMetadata());
|
||||
} catch (Exception $e) {
|
||||
echo 'Could not modify phar:', $e;
|
||||
}
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
&example.outputs;
|
||||
<screen>
|
||||
<![CDATA[
|
||||
array(1) {
|
||||
["bootstrap"]=>
|
||||
string(8) "file.php"
|
||||
}
|
||||
]]>
|
||||
</screen>
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::setMetadata</function></member>
|
||||
<member><function>Phar::delMetadata</function></member>
|
||||
<member><function>Phar::hasMetadata</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
|
||||
-->
|
58
reference/phar/Phar/getModified.xml
Normal file
58
reference/phar/Phar/getModified.xml
Normal file
@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="phar.getmodified">
|
||||
<refnamediv>
|
||||
<refname>Phar::getModified</refname>
|
||||
<refpurpose>Определить, изменялся phar-архив</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Phar::getModified</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
|
||||
<para>
|
||||
Этот метод используется для определения, изменялось ли что либо в
|
||||
phar-архиве.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
Без параметров.
|
||||
</para>
|
||||
</refsect1>
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
&true; - если архив после открытия изменялся и &false;, если нет.
|
||||
</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
|
||||
-->
|
63
reference/phar/Phar/getSignature.xml
Normal file
63
reference/phar/Phar/getSignature.xml
Normal file
@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="phar.getsignature">
|
||||
<refnamediv>
|
||||
<refname>Phar::getSignature</refname>
|
||||
<refpurpose>Получить MD5/SHA1/SHA256/SHA512/OpenSSL подпись Phar-архива</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>array</type><methodname>Phar::getSignature</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
|
||||
<para>
|
||||
Возвращает проверочную подпись phar-архива в виде строки шестнадцатеричных цифр.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
</para>
|
||||
</refsect1>
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
Массив, содержащий цифровую подпись открытого архива по ключу <literal>hash</literal>,
|
||||
и <literal>MD5</literal>, <literal>SHA-1</literal>, <literal>SHA-256</literal>,
|
||||
<literal>SHA-512</literal> или <literal>OpenSSL</literal> по ключу
|
||||
<literal>hash_type</literal>. Подпись - это хеш, вычесленный от содержимого
|
||||
архива, которую можно использовать для проверки его целосности.
|
||||
Корректная подпись требуется для всех запускаемых phar-архивов, если разрешена
|
||||
INI-переменная <link linkend="ini.phar.require-hash">phar.require_hash</link>.
|
||||
</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
|
||||
-->
|
126
reference/phar/Phar/getStub.xml
Normal file
126
reference/phar/Phar/getStub.xml
Normal file
@ -0,0 +1,126 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="phar.getstub">
|
||||
<refnamediv>
|
||||
<refname>Phar::getStub</refname>
|
||||
<refpurpose>Получить код загрузчика Phar-архива</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>string</type><methodname>Phar::getStub</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
|
||||
<para>
|
||||
Phar-архивы содержат загрузчик (<literal>stub</literal>), написанный на
|
||||
PHP, который запускается при запуске архива, когда его подключают через include:
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
include 'myphar.phar';
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
или просто запускают:
|
||||
<screen>
|
||||
<![CDATA[
|
||||
php myphar.phar
|
||||
]]>
|
||||
</screen>
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
Возвращает строку, содержащую текст загрузчика текущего Phar-архива.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="errors">
|
||||
&reftitle.errors;
|
||||
<para>
|
||||
Бросает исключение <classname>RuntimeException</classname>, если по каким либо
|
||||
причинам не может получить текст загрузчика.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::getStub</function></title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
|
||||
echo $p->getStub();
|
||||
echo "==NEXT==\n";
|
||||
$p->setStub("<?php
|
||||
function __autoload($class)
|
||||
{
|
||||
include 'phar://' . str_replace('_', '/', $class);
|
||||
}
|
||||
Phar::mapPhar('myphar.phar');
|
||||
include 'phar://myphar.phar/startup.php';
|
||||
__HALT_COMPILER(); ?>");
|
||||
echo $p->getStub();
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
&example.outputs;
|
||||
<screen>
|
||||
<![CDATA[
|
||||
<?php __HALT_COMPILER(); ?>
|
||||
==NEXT==
|
||||
<?php
|
||||
function __autoload($class)
|
||||
{
|
||||
include 'phar://' . str_replace('_', '/', $class);
|
||||
}
|
||||
Phar::mapPhar('myphar.phar');
|
||||
include 'phar://myphar.phar/startup.php';
|
||||
__HALT_COMPILER(); ?>
|
||||
]]>
|
||||
</screen>
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::setStub</function></member>
|
||||
<member><function>Phar::createDefaultStub</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
|
||||
-->
|
69
reference/phar/Phar/getSupportedSignatures.xml
Normal file
69
reference/phar/Phar/getSupportedSignatures.xml
Normal file
@ -0,0 +1,69 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xml:id="phar.getsupportedsignatures" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<refnamediv>
|
||||
<refname>Phar::getSupportedSignatures</refname>
|
||||
<refpurpose>Получить массив поддерживаемых алгоритмов подписи архива</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>final</modifier> <modifier>public</modifier> <modifier>static</modifier> <type>array</type><methodname>Phar::getSupportedSignatures</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
Возвращает массив поддерживаемых алгоритмов подписи архива
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
Без параметров.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
Возвращает массив примерно такого содержания: <literal>MD5</literal>, <literal>SHA-1</literal>,
|
||||
<literal>SHA-256</literal>, <literal>SHA-512</literal>, <literal>OpenSSL</literal>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::getSignature</function></member>
|
||||
<member><function>Phar::setSignatureAlgorithm</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
|
||||
-->
|
68
reference/phar/Phar/getVersion.xml
Normal file
68
reference/phar/Phar/getVersion.xml
Normal file
@ -0,0 +1,68 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="phar.getversion">
|
||||
<refnamediv>
|
||||
<refname>Phar::getVersion</refname>
|
||||
<refpurpose>Получить версию Phar-архива</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>string</type><methodname>Phar::getVersion</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
|
||||
<para>
|
||||
Возвращает версию API открытого Phar-архива.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
</para>
|
||||
</refsect1>
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
Версия API открытого архива. Не перепутайте с версией API загруженного
|
||||
расширения phar. Каждый Phar-архив имеет жестко прописанную версию API,
|
||||
с помощью которого его создавали, в манифесте.
|
||||
Подробную документацию можно почитать на странице <link linkend="phar.fileformat">Формат файла Phar</link>.
|
||||
</para>
|
||||
</refsect1>
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::apiVersion</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
|
||||
-->
|
102
reference/phar/Phar/hasMetadata.xml
Normal file
102
reference/phar/Phar/hasMetadata.xml
Normal file
@ -0,0 +1,102 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xml:id="phar.hasmetadata" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<refnamediv>
|
||||
<refname>Phar::hasMetadata</refname>
|
||||
<refpurpose>Проверить, содержит ли phar-архив глобальные метаданные</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Phar::hasMetadata</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
Проверяет, содержит ли phar-архив глобальные метаданные.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
Без параметров.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
Возвращает &true; или &false;.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::hasMetadata</function></title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
try {
|
||||
$phar = new Phar('myphar.phar');
|
||||
var_dump($phar->hasMetadata());
|
||||
$phar->setMetadata(array('thing' => 'hi'));
|
||||
var_dump($phar->hasMetadata());
|
||||
$phar->delMetadata();
|
||||
var_dump($phar->hasMetadata());
|
||||
} catch (Exception $e) {
|
||||
// handle error
|
||||
}
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
&example.outputs;
|
||||
<screen>
|
||||
<![CDATA[
|
||||
bool(false)
|
||||
bool(true)
|
||||
bool(false)
|
||||
]]>
|
||||
</screen>
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::getMetadata</function></member>
|
||||
<member><function>Phar::setMetadata</function></member>
|
||||
<member><function>Phar::delMetadata</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
|
||||
-->
|
107
reference/phar/Phar/interceptFileFuncs.xml
Normal file
107
reference/phar/Phar/interceptFileFuncs.xml
Normal file
@ -0,0 +1,107 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xml:id="phar.interceptfilefuncs" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<refnamediv>
|
||||
<refname>Phar::interceptFileFuncs</refname>
|
||||
<refpurpose>Указывает phar перехватывать fopen, file_get_contents, opendir и все stat-функции</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>final</modifier> <modifier>public</modifier> <modifier>static</modifier> <type>void</type><methodname>Phar::interceptFileFuncs</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
Указывает phar перехватывать <function>fopen</function>, <function>readfile</function>,
|
||||
<function>file_get_contents</function>, <function>opendir</function> и все
|
||||
stat-функции. Если какая либо из этих функций будет вызвана из phar-архива с
|
||||
относительным путем, то вызов будет модифицирован для доступа к содержимому
|
||||
архива. В случае с абсолютными путями будут работать штатные функции доступа
|
||||
к файловой системе.
|
||||
</para>
|
||||
<para>
|
||||
Эта функция позволяет писать приложения работающие не привязанные к жесткому диску.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
No parameters.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::interceptFileFuncs</function></title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
Phar::interceptFileFuncs();
|
||||
include 'phar://' . __FILE__ . '/file.php';
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
<para>
|
||||
Предположим, что у нас есть <literal>/path/to/myphar.phar</literal> и в нем
|
||||
содержатся файлы <literal>file.php</literal> и
|
||||
<literal>file2.txt</literal>. <literal>file.php</literal> содержит такой код:
|
||||
</para>
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::interceptFileFuncs</function></title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
echo file_get_contents('file2.txt');
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
<para>
|
||||
В обычном режиме, PHP будет искать <literal>file2.txt</literal> в текущей директории,
|
||||
являющейся директорией запуска file.php, либо текущей директорией в случае
|
||||
использования командной строки. <function>Phar::interceptFileFuncs</function> укажет
|
||||
PHP, что текущая директория - это <literal>phar:///path/to/myphar.phar/</literal> и,
|
||||
для примера выше, будет открыт файл
|
||||
<literal>phar:///path/to/myphar.phar/file2.txt</literal>.
|
||||
</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
|
||||
-->
|
115
reference/phar/Phar/isBuffering.xml
Normal file
115
reference/phar/Phar/isBuffering.xml
Normal file
@ -0,0 +1,115 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="phar.isbuffering">
|
||||
<refnamediv>
|
||||
<refname>Phar::isBuffering</refname>
|
||||
<refpurpose>Проверить, будут ли операции с Phar-архивом буферизованы или записаны напрямую на диск</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Phar::isBuffering</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
|
||||
<para>
|
||||
Проверяет, будут ли операции с Phar-архивом сразу записаны
|
||||
на диск или для этого надо вызывать <function>Phar::stopBuffering</function>.
|
||||
</para>
|
||||
<para>
|
||||
Настройки буферизации индивидуальны для каждого архива.
|
||||
Включенная буферизация для <literal>foo.phar</literal> никак не влияет
|
||||
на режим работы с <literal>bar.phar</literal>.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
Возвращает &true; или &false;.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::isBuffering</function></title>
|
||||
<para>
|
||||
</para>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
|
||||
$p2 = new Phar('existingphar.phar');
|
||||
$p['file1.txt'] = 'hi';
|
||||
var_dump($p->isBuffering());
|
||||
var_dump($p2->isBuffering());
|
||||
?>
|
||||
=2=
|
||||
<?php
|
||||
$p->startBuffering();
|
||||
var_dump($p->isBuffering());
|
||||
var_dump($p2->isBuffering());
|
||||
$p->stopBuffering();
|
||||
?>
|
||||
=3=
|
||||
<?php
|
||||
var_dump($p->isBuffering());
|
||||
var_dump($p2->isBuffering());
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
&example.outputs;
|
||||
<screen>
|
||||
<![CDATA[
|
||||
bool(false)
|
||||
bool(false)
|
||||
=2=
|
||||
bool(true)
|
||||
bool(false)
|
||||
=3=
|
||||
bool(false)
|
||||
bool(false)
|
||||
]]>
|
||||
</screen>
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::startBuffering</function></member>
|
||||
<member><function>Phar::stopBuffering</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
|
||||
-->
|
85
reference/phar/Phar/isFileFormat.xml
Normal file
85
reference/phar/Phar/isFileFormat.xml
Normal file
@ -0,0 +1,85 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xml:id="phar.isfileformat" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<refnamediv>
|
||||
<refname>Phar::isFileFormat</refname>
|
||||
<refpurpose>Проверить, что phar-архив имеет заданный формат (tar/phar/zip)</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Phar::isFileFormat</methodname>
|
||||
<methodparam><type>int</type><parameter>format</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
</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>, в зависимости от проверяемого формата.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
Возвращает &true;, если phar-архив имеет указанный формат
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="errors">
|
||||
&reftitle.errors;
|
||||
<para>
|
||||
В случае задания некорректного формата будет выброшено исключение <classname>PharException</classname>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::convertToExecutable</function></member>
|
||||
<member><function>Phar::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
|
||||
-->
|
79
reference/phar/Phar/isValidPharFilename.xml
Normal file
79
reference/phar/Phar/isValidPharFilename.xml
Normal file
@ -0,0 +1,79 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xml:id="phar.isvalidpharfilename" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<refnamediv>
|
||||
<refname>Phar::isValidPharFilename</refname>
|
||||
<refpurpose>Проверяет, что заданное имя файла является корректным именем phar-архива</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>final</modifier> <modifier>public</modifier> <modifier>static</modifier> <type>bool</type><methodname>Phar::isValidPharFilename</methodname>
|
||||
<methodparam><type>string</type><parameter>filename</parameter></methodparam>
|
||||
<methodparam choice="opt"><type>bool</type><parameter>executable</parameter><initializer>true</initializer></methodparam>
|
||||
</methodsynopsis>
|
||||
|
||||
<para>
|
||||
Проверяет, что заданное имя файла является корректным именем phar-архива.
|
||||
Можно использовать для проверки имени файла до момента его непосредственного
|
||||
создания, дабы избежать нежелательных исключений.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>filename</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Имя или полный путь до файла, который еще не создан
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>executable</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Этот параметр определяет, должен ли файл опозноваться как
|
||||
запускаемый phar-архив, или как незапускаемый архив с данными
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
Возвращает &true; или &false;.
|
||||
</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
|
||||
-->
|
68
reference/phar/Phar/isWritable.xml
Normal file
68
reference/phar/Phar/isWritable.xml
Normal file
@ -0,0 +1,68 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xml:id="phar.iswritable" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<refnamediv>
|
||||
<refname>Phar::isWritable</refname>
|
||||
<refpurpose>Проверяет, можно ли модифицировать phar-архив</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Phar::isWritable</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
Этот метод возвращает &true; если <literal>phar.readonly</literal> установлен в
|
||||
<literal>0</literal>, архив существует и доступен для записи.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
Параметров нет.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
Возвращает &true; если архив можно модифицировать
|
||||
</para>
|
||||
</refsect1>
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::canWrite</function></member>
|
||||
<member><function>PharData::isWritable</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
|
||||
-->
|
122
reference/phar/Phar/loadPhar.xml
Normal file
122
reference/phar/Phar/loadPhar.xml
Normal file
@ -0,0 +1,122 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="phar.loadphar">
|
||||
<refnamediv>
|
||||
<refname>Phar::loadPhar</refname>
|
||||
<refpurpose>Загрузить phar-архив с псевдонимом</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>final</modifier> <modifier>public</modifier> <modifier>static</modifier> <type>bool</type><methodname>Phar::loadPhar</methodname>
|
||||
<methodparam><type>string</type><parameter>filename</parameter></methodparam>
|
||||
<methodparam choice="opt"><type>string</type><parameter>alias</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
|
||||
<para>
|
||||
Может использоваться для загрузки внешнего Phar-архива.
|
||||
То, что для phar-архива назначается псевдоним, позволяет в дальнейшем
|
||||
использовать более короткие ссылки для доступа к нему или же для загрузки архивов Phar,
|
||||
содержащих только данные и не предназначеных для выполнения.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>filename</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Путь к загружаемому phar-архиву
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>alias</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Псевдоним для доступа к архиву. Обратите внимание, что многие
|
||||
phar-архивы имеют свой явно заданный псевдоним и, при задании нового псевдонима,
|
||||
будет выброшено исключение <classname>PharException</classname>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</refsect1>
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
&return.success;
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="errors">
|
||||
&reftitle.errors;
|
||||
<para>
|
||||
Если задан параметр с псевдонимом, а загружаемый архив уже имеет псевдоним, то будет
|
||||
выброшено исключение <classname>PharException</classname>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::loadPhar</function></title>
|
||||
<para>
|
||||
Phar::loadPhar можно использовать где угодно, тогда как
|
||||
Phar::mapPhar только в загрузчике (stub) Phar-архива.
|
||||
</para>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
try {
|
||||
Phar::loadPhar('/path/to/phar.phar', 'my.phar');
|
||||
echo file_get_contents('phar://my.phar/file.txt');
|
||||
} catch (PharException $e) {
|
||||
echo $e;
|
||||
}
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::mapPhar</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
|
||||
-->
|
131
reference/phar/Phar/mapPhar.xml
Normal file
131
reference/phar/Phar/mapPhar.xml
Normal file
@ -0,0 +1,131 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="phar.mapphar">
|
||||
<refnamediv>
|
||||
<refname>Phar::mapPhar</refname>
|
||||
<refpurpose>Прочитать текущий запущенный phar-архив и зарегистрировать его манифест</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>final</modifier> <modifier>public</modifier> <modifier>static</modifier> <type>bool</type><methodname>Phar::mapPhar</methodname>
|
||||
<methodparam choice="opt"><type>string</type><parameter>alias</parameter></methodparam>
|
||||
<methodparam choice="opt"><type>int</type><parameter>dataoffset</parameter><initializer>0</initializer></methodparam>
|
||||
</methodsynopsis>
|
||||
|
||||
<para>
|
||||
Этот статический метод можно использовать только в загрузчике (stub)
|
||||
Phar-архива в целях его инициализации, когда он запущен напрямую, либо
|
||||
включен в другой скрипт.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>alias</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Псевдоним можно использовать в обертках <literal>phar://</literal>, ссылаясь
|
||||
на этот архив, вместо использования полного пути.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>dataoffset</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Неиспользуемая переменная. Существует только для совместимости с PEAR-пакетом
|
||||
PHP_Archive.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</refsect1>
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
&return.success;
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="errors">
|
||||
&reftitle.errors;
|
||||
<para>
|
||||
Выбрасывается исключение <classname>PharException</classname>, если вызывается
|
||||
из скрипта, в котором не обнаружено токена __HALT_COMPILER();, либо если
|
||||
файл недоступен для чтения.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::mapPhar</function></title>
|
||||
<para>
|
||||
Phar::loadPhar можно использовать где угодно, тогда как
|
||||
Phar::mapPhar только в загрузчике (stub) Phar-архива.
|
||||
</para>
|
||||
<para>
|
||||
Простой загрузчик Phar, использующий mapPhar.
|
||||
</para>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
function __autoload($class)
|
||||
{
|
||||
include 'phar://me.phar/' . str_replace('_', '/', $class) . '.php';
|
||||
}
|
||||
try {
|
||||
Phar::mapPhar('me.phar');
|
||||
include 'phar://me.phar/startup.php';
|
||||
} catch (PharException $e) {
|
||||
echo $e->getMessage();
|
||||
die('Cannot initialize Phar');
|
||||
}
|
||||
__HALT_COMPILER();
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::loadPhar</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
|
||||
-->
|
163
reference/phar/Phar/mount.xml
Normal file
163
reference/phar/Phar/mount.xml
Normal file
@ -0,0 +1,163 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xml:id="phar.mount" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<refnamediv>
|
||||
<refname>Phar::mount</refname>
|
||||
<refpurpose>Монтирование внешнего путь или файла к виртуальному пути в phar-архиве</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>final</modifier> <modifier>public</modifier> <modifier>static</modifier> <type>void</type><methodname>Phar::mount</methodname>
|
||||
<methodparam><type>string</type><parameter>pharpath</parameter></methodparam>
|
||||
<methodparam><type>string</type><parameter>externalpath</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
Очень похоже на концепцию файловой системы unix по монтированию внешнего
|
||||
устройства в существующее дерево директорий. <function>Phar::mount</function>
|
||||
позволяет ссылаться на внешние файлы и директории, как будто они находятся
|
||||
внутри архива. Это позволяет повысить уровень абстракции обращаясь ко внешним
|
||||
конфигурационным файлам так, как будто они являются частью архива.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>pharpath</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Внутренний путь в архиве, по которому необходимо примонтировать внешний путь.
|
||||
Это должен быть не существующий относительный путь внутри архива.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>externalpath</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Путь или URL внешнего файла или директории
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
Ничего не возвращает. В случае ошибки бросает исключение <classname>PharException</classname>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="errors">
|
||||
&reftitle.errors;
|
||||
<para>
|
||||
Бросает исключение <classname>PharException</classname> при возникновении ошибок.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::mount</function></title>
|
||||
<para>
|
||||
В следующем примере демонстрируется доступ к внешнему конфигурационному файлу,
|
||||
как будто он находится внутри архива.
|
||||
</para>
|
||||
<para>
|
||||
Для начала код, содержащийся в архиве:
|
||||
</para>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$configuration = simplexml_load_string(file_get_contents(
|
||||
Phar::running(false) . '/config.xml'));
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
Далее внешний код, монтирующий файл в архив:
|
||||
</para>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
// для начала настроим ассоциацию между абстрактным config.xml
|
||||
// и конкретным файлом на диске
|
||||
Phar::mount('phar://config.xml', '/home/example/config.xml');
|
||||
// а теперь запускаем приложение
|
||||
include '/path/to/archive.phar';
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
Другой метод - поместить монтирующий код а загрузчик (stub) внутрь архива.
|
||||
Пример использования конфигурационного файла по умолчанию,
|
||||
если пользовательский файл конфигурации не задан:
|
||||
</para>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
// для начала настроим ассоциацию между абстрактным config.xml
|
||||
// и конкретным файлом на диске
|
||||
if (defined('EXTERNAL_CONFIG')) {
|
||||
Phar::mount('config.xml', EXTERNAL_CONFIG);
|
||||
if (file_exists(__DIR__ . '/extra_config.xml')) {
|
||||
Phar::mount('extra.xml', __DIR__ . '/extra_config.xml');
|
||||
}
|
||||
} else {
|
||||
Phar::mount('config.xml', 'phar://' . __FILE__ . '/default_config.xml');
|
||||
Phar::mount('extra.xml', 'phar://' . __FILE__ . '/default_extra.xml');
|
||||
}
|
||||
// а теперь запускаем приложение
|
||||
include 'phar://' . __FILE__ . '/index.php';
|
||||
__HALT_COMPILER();
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
... и код для загрузки этого phar-архива:
|
||||
</para>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
define('EXTERNAL_CONFIG', '/home/example/config.xml');
|
||||
// а теперь запускаем приложение
|
||||
include '/path/to/archive.phar';
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</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
|
||||
-->
|
128
reference/phar/Phar/mungServer.xml
Normal file
128
reference/phar/Phar/mungServer.xml
Normal file
@ -0,0 +1,128 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xml:id="phar.mungserver" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<refnamediv>
|
||||
<refname>Phar::mungServer</refname>
|
||||
<refpurpose>Определить список до четырех $_SERVER-переменных, которые должны быть изменены для запуска</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>final</modifier> <modifier>public</modifier> <modifier>static</modifier> <type>void</type><methodname>Phar::mungServer</methodname>
|
||||
<methodparam><type>array</type><parameter>munglist</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
Функция <function>Phar::mungServer</function> должна вызываться только в загрузчике.
|
||||
</para>
|
||||
<para>
|
||||
Определяет список до четырех <varname>$_SERVER</varname>-переменных, которые
|
||||
необходимо модифицировать для запуска.
|
||||
Модификация заключается в удалении следов запуска из phar-архива для
|
||||
переменных <literal>REQUEST_URI</literal>, <literal>PHP_SELF</literal>,
|
||||
<literal>SCRIPT_NAME</literal> и <literal>SCRIPT_FILENAME</literal>.
|
||||
</para>
|
||||
<para>
|
||||
Сам по себе этот метод ничего не делает. Эффект достигается только в комбинации
|
||||
с <function>Phar::webPhar</function> и только если запрошенный файл является
|
||||
PHP-файлом для разбора. Обратите внимание, что переменные
|
||||
<literal>PATH_INFO</literal> и <literal>PATH_TRANSLATED</literal> всегда
|
||||
модифицированы.
|
||||
</para>
|
||||
<para>
|
||||
Оригинальные значения изменяемых переменных будут сохранены в массиве SERVER
|
||||
с префиксами <literal>PHAR_</literal>. Например, оригинальное значение
|
||||
<literal>SCRIPT_NAME</literal> будет записано в <literal>PHAR_SCRIPT_NAME</literal>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>munglist</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Массив, содержащий комбинацию из:
|
||||
<literal>REQUEST_URI</literal>, <literal>PHP_SELF</literal>,
|
||||
<literal>SCRIPT_NAME</literal> и <literal>SCRIPT_FILENAME</literal>.
|
||||
Любые другие значения вызывут исключение.
|
||||
Обратите внимание, что функция <function>Phar::mungServer</function> чуствительна к
|
||||
регистру символов.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
Ничего не возвращает.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="errors">
|
||||
&reftitle.errors;
|
||||
<para>
|
||||
Бросает исключение <classname>UnexpectedValueException</classname>, если входные
|
||||
данные некоректны.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::mungServer</function></title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
// пример загрузчика
|
||||
Phar::mungServer(array('REQUEST_URI'));
|
||||
Phar::webPhar();
|
||||
__HALT_COMPILER();
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::webPhar</function></member>
|
||||
<member><function>Phar::setStub</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
|
||||
-->
|
109
reference/phar/Phar/offsetExists.xml
Normal file
109
reference/phar/Phar/offsetExists.xml
Normal file
@ -0,0 +1,109 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="phar.offsetexists">
|
||||
<refnamediv>
|
||||
<refname>Phar::offsetExists</refname>
|
||||
<refpurpose>Определить, есть ли файл в архиве</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Phar::offsetExists</methodname>
|
||||
<methodparam><type>string</type><parameter>offset</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
Это реализация интерфейса <interfacename>ArrayAccess</interfacename>,
|
||||
позволяющаа манипулировать содержимым Phar-архива в стиле доступа к элементам
|
||||
массива.
|
||||
</para>
|
||||
<para>
|
||||
offsetExists() запускается каждый раз, когда вызывается <function>isset</function>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>offset</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Имя файла (относительный путь).
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</refsect1>
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
Возвращает &true;, если файл присутствует в архиве и &false;, если нет.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::offsetExists</function></title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$p = new Phar(dirname(__FILE__) . '/my.phar', 0, 'my.phar');
|
||||
$p['firstfile.txt'] = 'первый файл';
|
||||
$p['secondfile.txt'] = 'второй файл';
|
||||
// в следующих строках offsetExists() вызывается косвенно
|
||||
var_dump(isset($p['firstfile.txt']));
|
||||
var_dump(isset($p['nothere.txt']));
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
&example.outputs;
|
||||
<screen>
|
||||
<![CDATA[
|
||||
bool(true)
|
||||
bool(false)
|
||||
]]>
|
||||
</screen>
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::offsetGet</function></member>
|
||||
<member><function>Phar::offsetSet</function></member>
|
||||
<member><function>Phar::offsetUnset</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
|
||||
-->
|
124
reference/phar/Phar/offsetGet.xml
Normal file
124
reference/phar/Phar/offsetGet.xml
Normal file
@ -0,0 +1,124 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="phar.offsetget">
|
||||
<refnamediv>
|
||||
<refname>Phar::offsetGet</refname>
|
||||
<refpurpose>Получить объект <classname>PharFileInfo</classname> для конкретного файла</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>int</type><methodname>Phar::offsetGet</methodname>
|
||||
<methodparam><type>string</type><parameter>offset</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
|
||||
<para>
|
||||
Это реализация интерфейса <interfacename>ArrayAccess</interfacename>,
|
||||
позволяющаа манипулировать содержимым Phar-архива в стиле доступа к элементам
|
||||
массива. <methodname>Phar::offsetGet</methodname> используется для
|
||||
извлечения файлов из архива.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>offset</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Имя файла (относительный путь).
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</refsect1>
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
Объект класса <classname>PharFileInfo</classname>. Можно использовать
|
||||
для получения информации о файле и для извлечения контента через итерирование.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="errors">
|
||||
&reftitle.errors;
|
||||
<para>
|
||||
Бросает исключение <classname>BadMethodCallException</classname>, если такого файла нет.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::offsetGet</function></title>
|
||||
<para>
|
||||
Как и для любого другого класса, реализующего <classname>ArrayAccess</classname>,
|
||||
метод <methodname>Phar::offsetGet</methodname> будет вызван автоматически
|
||||
при использовании оператора <literal>[]</literal>.
|
||||
</para>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$p = new Phar(dirname(__FILE__) . '/myphar.phar', 0, 'myphar.phar');
|
||||
$p['exists.txt'] = "file exists\n";
|
||||
try {
|
||||
// автоматический вызов offsetGet()
|
||||
echo $p['exists.txt'];
|
||||
echo $p['doesnotexist.txt'];
|
||||
} catch (BadMethodCallException $e) {
|
||||
echo $e;
|
||||
}
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
&example.outputs;
|
||||
<screen>
|
||||
<![CDATA[
|
||||
file exists
|
||||
Entry doesnotexist.txt does not exist
|
||||
]]>
|
||||
</screen>
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::offsetExists</function></member>
|
||||
<member><function>Phar::offsetSet</function></member>
|
||||
<member><function>Phar::offsetUnset</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
|
||||
-->
|
129
reference/phar/Phar/offsetSet.xml
Normal file
129
reference/phar/Phar/offsetSet.xml
Normal file
@ -0,0 +1,129 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="phar.offsetset">
|
||||
<refnamediv>
|
||||
<refname>Phar::offsetSet</refname>
|
||||
<refpurpose>Изменение содержимого файла</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>void</type><methodname>Phar::offsetSet</methodname>
|
||||
<methodparam><type>string</type><parameter>offset</parameter></methodparam>
|
||||
<methodparam><type>string</type><parameter>value</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
&phar.write;
|
||||
|
||||
|
||||
<para>
|
||||
Это реализация интерфейса <interfacename>ArrayAccess</interfacename>,
|
||||
позволяющаа манипулировать содержимым Phar-архива в стиле доступа к элементам
|
||||
массива. offsetSet используется для изменения контента существующего
|
||||
файла, либо для создания нового.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>offset</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Имя файла (относительный путь).
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>value</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Содержимое файла.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</refsect1>
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
Ничего не возвращает.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="errors">
|
||||
&reftitle.errors;
|
||||
<para>
|
||||
Если <link linkend="ini.phar.readonly">phar.readonly</link> установлен в
|
||||
<literal>1</literal>, то будет выброшено исключение
|
||||
<classname>BadMethodCallException</classname>, так как модифицировать Phar-архив
|
||||
можно только, если phar.readonly равен <literal>0</literal>. Если возникнут
|
||||
какие либо проблемы с записью на диск - будет выброшено исключение
|
||||
<classname>PharException</classname>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::offsetSet</function></title>
|
||||
<para>
|
||||
offsetSet не нужно вызывать напрямую. Используйте синтаксис <literal>[]</literal>.
|
||||
</para>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
|
||||
try {
|
||||
// вызов offsetSet
|
||||
$p['file.txt'] = 'Hi there';
|
||||
} catch (Exception $e) {
|
||||
echo 'Не могу изменить file.txt:', $e;
|
||||
}
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::offsetExists</function></member>
|
||||
<member><function>Phar::offsetGet</function></member>
|
||||
<member><function>Phar::offsetUnset</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
|
||||
-->
|
120
reference/phar/Phar/offsetUnset.xml
Normal file
120
reference/phar/Phar/offsetUnset.xml
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="phar.offsetunset">
|
||||
<refnamediv>
|
||||
<refname>Phar::offsetUnset</refname>
|
||||
<refpurpose>Удалить файл из phar-архива</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Phar::offsetUnset</methodname>
|
||||
<methodparam><type>string</type><parameter>offset</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
&phar.write;
|
||||
|
||||
|
||||
<para>
|
||||
Это реализация интерфейса <interfacename>ArrayAccess</interfacename>,
|
||||
позволяющаа манипулировать содержимым Phar-архива в стиле доступа к элементам
|
||||
массива. offsetUnset используется для удаления файлов и запускается каждый раз,
|
||||
когда используется конструкция <function>unset</function>.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>offset</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Имя файла (относительный путь).
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
&return.success;
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="errors">
|
||||
&reftitle.errors;
|
||||
<para>
|
||||
Если <link linkend="ini.phar.readonly">phar.readonly</link> установлен в
|
||||
<literal>1</literal>, то будет выброшено исключение
|
||||
<classname>BadMethodCallException</classname>, так как модифицировать Phar-архив
|
||||
можно только, если phar.readonly равен <literal>0</literal>. Если возникнут
|
||||
какие либо проблемы с записью на диск - будет выброшено исключение
|
||||
<classname>PharException</classname>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::offsetUnset</function></title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
|
||||
try {
|
||||
// удаляет file.txt из my.phar путем вызова offsetUnset
|
||||
unset($p['file.txt']);
|
||||
} catch (Exception $e) {
|
||||
echo 'Could not delete file.txt: ', $e;
|
||||
}
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::offsetExists</function></member>
|
||||
<member><function>Phar::offsetGet</function></member>
|
||||
<member><function>Phar::offsetSet</function></member>
|
||||
<member><function>Phar::unlinkArchive</function></member>
|
||||
<member><function>Phar::delete</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
|
||||
-->
|
97
reference/phar/Phar/running.xml
Normal file
97
reference/phar/Phar/running.xml
Normal file
@ -0,0 +1,97 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xml:id="phar.running" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<refnamediv>
|
||||
<refname>Phar::running</refname>
|
||||
<refpurpose>Получить полный путь на диске, либо полный URL запущенного Phar-архива</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>final</modifier> <modifier>public</modifier> <modifier>static</modifier> <type>string</type><methodname>Phar::running</methodname>
|
||||
<methodparam choice="opt"><type>bool</type><parameter>retphar</parameter><initializer>true</initializer></methodparam>
|
||||
</methodsynopsis>
|
||||
|
||||
<para>
|
||||
Возвращает полный путь запущенного phar-архива. Используется для того же, для
|
||||
чего используется константа <literal>__FILE__</literal> и работает только внутри
|
||||
запущенного phar-архива.
|
||||
</para>
|
||||
<para>
|
||||
При запуске <function>Phar::running</function> из загрузчика результат будет
|
||||
<literal>""</literal>. Внутри загрузчика используйте
|
||||
константу <constant>__FILE__</constant>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>retphar</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Если &false;, то будет возвращен полный дисковый путь к phar-архиву.
|
||||
Если &true;, то будет возвращен полный URL.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
Вернет путь, если он корректен, либо пустую строку.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::running</function></title>
|
||||
<para>
|
||||
Для следующего примера предположим, что архив лежит по пути
|
||||
<literal>/path/to/phar/my.phar</literal>.
|
||||
</para>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$a = Phar::running(); // $a равно "phar:///path/to/my.phar"
|
||||
$b = Phar::running(false); // $b равно "/path/to/my.phar"
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</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
|
||||
-->
|
115
reference/phar/Phar/setAlias.xml
Normal file
115
reference/phar/Phar/setAlias.xml
Normal file
@ -0,0 +1,115 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xml:id="phar.setalias" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<refnamediv>
|
||||
<refname>Phar::setAlias</refname>
|
||||
<refpurpose>Установить псевдоним для Phar-архива</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Phar::setAlias</methodname>
|
||||
<methodparam><type>string</type><parameter>alias</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
&phar.write;
|
||||
|
||||
<para>
|
||||
Устанавливает псевдоним для Phar-архива и записывает его как постоянный
|
||||
псевдоним для этого архива. Псевдоним можно использовать внутри phar-архива для
|
||||
уверенности в том, что доступ через потоковую обертку <literal>phar</literal> для
|
||||
доступа к внутренним файлам будет работать всегда, независимо от местоположения
|
||||
phar-архива на файловой системе. Другой альтернативой является надежда на
|
||||
перехват <function>include</function> или использование
|
||||
<function>Phar::interceptFileFuncs</function> совместно с относительными путями.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>alias</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Короткое имя, которое можно будет использовать с доступом
|
||||
через потоковую обертку <literal>phar</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="errors">
|
||||
&reftitle.errors;
|
||||
<para>
|
||||
Бросает исключение <classname>UnexpectedValueException</classname>, если
|
||||
досьтуп запрещен и <classname>PharException</classname>, если псевдоним
|
||||
уже используется, или возникли проблемы с записью на диск.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::setAlias</function></title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
try {
|
||||
$phar = new Phar('myphar.phar');
|
||||
$phar->setAlias('myp.phar');
|
||||
} catch (Exception $e) {
|
||||
// обрабатываем ошибки
|
||||
}
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::__construct</function></member>
|
||||
<member><function>Phar::interceptFileFuncs</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
|
||||
-->
|
122
reference/phar/Phar/setDefaultStub.xml
Normal file
122
reference/phar/Phar/setDefaultStub.xml
Normal file
@ -0,0 +1,122 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="phar.setdefaultstub">
|
||||
<refnamediv>
|
||||
<refname>Phar::setDefaultStub</refname>
|
||||
<refpurpose>Установить в качестве загрузчика (stub) загрузчик по умолчанию</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Phar::setDefaultStub</methodname>
|
||||
<methodparam choice="opt"><type>string</type><parameter>index</parameter></methodparam>
|
||||
<methodparam choice="opt"><type>string</type><parameter>webindex</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
&phar.write;
|
||||
<para>
|
||||
Этот метод комбинирует функционал двух других методов,
|
||||
<function>Phar::createDefaultStub</function> и <function>Phar::setStub</function>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>index</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Относительный путь в phar-архиве для запуска при доступе из командной строки
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>webindex</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Относительный путь в phar-архиве для запуска при доступе из веб-браузера
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
&return.success;
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="errors">
|
||||
&reftitle.errors;
|
||||
<para>
|
||||
Будет брошено исключение <classname>UnexpectedValueException</classname>,
|
||||
если <link linkend="ini.phar.readonly">phar.readonly</link> разрешено в php.ini.
|
||||
В случае проблем с записью на диск будет выброшено исключение
|
||||
<classname>PharException</classname>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::setDefaultStub</function></title>
|
||||
<para>
|
||||
</para>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
try {
|
||||
$phar = new Phar('myphar.phar');
|
||||
$phar->setDefaultStub('cli.php', 'web/index.php');
|
||||
// это аналогично такому коду:
|
||||
// $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
|
||||
} catch (Exception $e) {
|
||||
// handle errors
|
||||
}
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::setStub</function></member>
|
||||
<member><function>Phar::createDefaultStub</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
|
||||
-->
|
128
reference/phar/Phar/setMetadata.xml
Normal file
128
reference/phar/Phar/setMetadata.xml
Normal file
@ -0,0 +1,128 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://docbook.org/ns/docbook" xml:id="phar.setmetadata">
|
||||
<refnamediv>
|
||||
<refname>Phar::setMetadata</refname>
|
||||
<refpurpose>Установить мета-данные phar-архива</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>void</type><methodname>Phar::setMetadata</methodname>
|
||||
<methodparam><type>mixed</type><parameter>metadata</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
&phar.write;
|
||||
|
||||
<para>
|
||||
Функция <function>Phar::setMetadata</function> используется для сохранения
|
||||
данных, характеризующих phar-архив в целом.
|
||||
<function>PharFileInfo::setMetadata</function> используется для установки мета-данных
|
||||
для конкретного файла. Если мета-данных будет много, то это может снизить
|
||||
скорость загрузки phar-архива.
|
||||
</para>
|
||||
<para>
|
||||
Мета-данные можно использовать, например, для указания, какой файл должен
|
||||
исполняться при загрузке, или для указагния местоположения манифеста,
|
||||
типа package.xml для модуля <link xlink:href="&url.pear;">PEAR</link>.
|
||||
В общем, любые полезные в контексте phar-архива данные.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>metadata</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Любая переменная PHP, содержащая необходимую информацию
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
&return.void;
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::setMetadata</function></title>
|
||||
<para>
|
||||
</para>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
// удалим, на всякий случай
|
||||
@unlink('brandnewphar.phar');
|
||||
try {
|
||||
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
|
||||
$p['file.php'] = '<?php echo "привет"';
|
||||
$p->setMetadata(array('bootstrap' => 'file.php'));
|
||||
var_dump($p->getMetadata());
|
||||
} catch (Exception $e) {
|
||||
echo 'Не могу создать/изменить phar:', $e;
|
||||
}
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
&example.outputs;
|
||||
<screen>
|
||||
<![CDATA[
|
||||
array(1) {
|
||||
["bootstrap"]=>
|
||||
string(8) "file.php"
|
||||
}
|
||||
]]>
|
||||
</screen>
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::getMetadata</function></member>
|
||||
<member><function>Phar::delMetadata</function></member>
|
||||
<member><function>Phar::hasMetadata</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
|
||||
-->
|
122
reference/phar/Phar/setSignatureAlgorithm.xml
Normal file
122
reference/phar/Phar/setSignatureAlgorithm.xml
Normal file
@ -0,0 +1,122 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xml:id="phar.setsignaturealgorithm" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<refnamediv>
|
||||
<refname>Phar::setSignatureAlgorithm</refname>
|
||||
<refpurpose>Установить алгоритм подписания phar-архива и применение его</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>void</type><methodname>Phar::setSignatureAlgorithm</methodname>
|
||||
<methodparam><type>int</type><parameter>sigtype</parameter></methodparam>
|
||||
<methodparam choice="opt"><type>string</type><parameter>privatekey</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
&phar.write;
|
||||
|
||||
<para>
|
||||
Устанавливает алгоритм подписания phar-архива и применяет его.
|
||||
Доступны следующие алгоритмы подписания: <literal>Phar::MD5</literal>,
|
||||
<literal>Phar::SHA1</literal>, <literal>Phar::SHA256</literal>,
|
||||
<literal>Phar::SHA512</literal> и <literal>Phar::OPENSSL</literal>.
|
||||
</para>
|
||||
<para>
|
||||
Обратите внимание, что для всех исполняемых phar-архивов подпись создается
|
||||
автоматически, с использованием по умолчанию <literal>SHA1</literal>.
|
||||
Архивы с данными на основе tar или zip
|
||||
(созданные с помощью класса <classname>PharData</classname>) должны иметь
|
||||
явно созданную с помощью <function>Phar::setSignatureAlgorithm</function> подпись.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>sigtype</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Одна из констант: <literal>Phar::MD5</literal>,
|
||||
<literal>Phar::SHA1</literal>, <literal>Phar::SHA256</literal>,
|
||||
<literal>Phar::SHA512</literal> или <literal>Phar::OPENSSL</literal>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>privatekey</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Секретный ключ OpenSSL, извлеченный из сертификата, либо файл с ключем OpenSSL:
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$private = openssl_get_privatekey(file_get_contents('private.pem'));
|
||||
$pkey = '';
|
||||
openssl_pkey_export($private, $pkey);
|
||||
$p->setSignatureAlgorithm(Phar::OPENSSL, $pkey);
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
Подробности об именовании и размещении файла открытого ключа
|
||||
читайте в разделе <link linkend="phar.using">введение в phar</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
&return.void;
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="errors">
|
||||
&reftitle.errors;
|
||||
<para>
|
||||
Бросает исключение <classname>UnexpectedValueException</classname>
|
||||
при любых ошибках, кроме ошибок записи на диск. При ошибках записи на диск
|
||||
бросает исключение <classname>PharException</classname>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::getSupportedSignatures</function></member>
|
||||
<member><function>Phar::getSignature</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
|
||||
-->
|
184
reference/phar/Phar/setStub.xml
Normal file
184
reference/phar/Phar/setStub.xml
Normal file
@ -0,0 +1,184 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="phar.setstub">
|
||||
<refnamediv>
|
||||
<refname>Phar::setStub</refname>
|
||||
<refpurpose>Добавить загрузчик(stub) в Phar-архив</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Phar::setStub</methodname>
|
||||
<methodparam><type>string</type><parameter>stub</parameter></methodparam>
|
||||
<methodparam choice="opt"><type>int</type><parameter>len</parameter><initializer>-1</initializer></methodparam>
|
||||
</methodsynopsis>
|
||||
&phar.write;
|
||||
|
||||
|
||||
<para>
|
||||
Этот метод используется для добавления PHP-загрузчика в новый Phar-архив, либо
|
||||
для замены уже существующего загрузчика.
|
||||
</para>
|
||||
<para>
|
||||
Загрузчик используется при подключении Phar-архива с помощью included:
|
||||
</para>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
include 'myphar.phar';
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
Загрузчик не используется, когда архив подключается с использованием обертки
|
||||
<literal>phar</literal>, как в примере ниже:
|
||||
</para>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
include 'phar://myphar.phar/somefile.php';
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>stub</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Строка, либо открытый ресурс потока.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>len</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
&return.success;
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="errors">
|
||||
&reftitle.errors;
|
||||
<para>
|
||||
Будет брошено исключение <classname>UnexpectedValueException</classname>,
|
||||
если <link linkend="ini.phar.readonly">phar.readonly</link> разрешено в php.ini.
|
||||
В случае проблем с записью на диск будет выброшено исключение
|
||||
<classname>PharException</classname>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::setStub</function></title>
|
||||
<para>
|
||||
</para>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
try {
|
||||
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
|
||||
$p['a.php'] = '<?php var_dump("Hello");';
|
||||
$p->setStub('<?php var_dump("First"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>');
|
||||
include 'phar://brandnewphar.phar/a.php';
|
||||
var_dump($p->getStub());
|
||||
$p['b.php'] = '<?php var_dump("World");';
|
||||
$p->setStub('<?php var_dump("Second"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>');
|
||||
include 'phar://brandnewphar.phar/b.php';
|
||||
var_dump($p->getStub());
|
||||
} catch (Exception $e) {
|
||||
echo 'Write operations failed on brandnewphar.phar: ', $e;
|
||||
}
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
&example.outputs;
|
||||
<screen>
|
||||
<![CDATA[
|
||||
string(5) "Hello"
|
||||
string(82) "<?php var_dump("First"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>"
|
||||
string(5) "World"
|
||||
string(83) "<?php var_dump("Second"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>"
|
||||
]]>
|
||||
</screen>
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="changelog">
|
||||
&reftitle.changelog;
|
||||
<para>
|
||||
<informaltable>
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>&Version;</entry>
|
||||
<entry>&Description;</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>5.4.0</entry>
|
||||
<entry>
|
||||
Добавлен параметр <parameter>len</parameter>.
|
||||
</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::getStub</function></member>
|
||||
<member><function>Phar::createDefaultStub</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
|
||||
-->
|
117
reference/phar/Phar/startBuffering.xml
Normal file
117
reference/phar/Phar/startBuffering.xml
Normal file
@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="phar.startbuffering">
|
||||
<refnamediv>
|
||||
<refname>Phar::startBuffering</refname>
|
||||
<refpurpose>Запускает буферизацию операций записи, отключая запись изменений Phar-архива на диск</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>void</type><methodname>Phar::startBuffering</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
|
||||
<para>
|
||||
Метод <function>Phar::startBuffering</function> может дать значительный прирост
|
||||
производительности при создании, либо модификации phar-архива с большим
|
||||
количеством файлов. Обычно, когда добавляется новый файл, либо
|
||||
изменяется существующий, запускается операция пересоздания phar-архива.
|
||||
С включенной буферизацией архив будет пересоздан один раз в самом конце
|
||||
внесения изменений.
|
||||
</para>
|
||||
<para>
|
||||
Эта концепция работает аналогично транзакции в базе данных, что
|
||||
позволяет сделать вне необходимые изменения и применить их
|
||||
одновременно, в рамках одной операции. Такое поведение обеспечивает пара
|
||||
методов <function>Phar::startBuffering</function>/<function>Phar::stopBuffering</function>.
|
||||
</para>
|
||||
<para>
|
||||
Настройки буферизации индивидуальны для каждого архива.
|
||||
Включенная буферизация для <literal>foo.phar</literal> никак не влияет
|
||||
на режим работы с <literal>bar.phar</literal>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
&return.void;
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::startBuffering</function></title>
|
||||
<para>
|
||||
</para>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
// удалим на всякий случай
|
||||
@unlink('brandnewphar.phar');
|
||||
try {
|
||||
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
|
||||
} catch (Exception $e) {
|
||||
echo 'не могу создать phar:', $e;
|
||||
}
|
||||
echo 'The new phar has ' . $p->count() . " entries\n";
|
||||
$p->startBuffering();
|
||||
$p['file.txt'] = 'hi';
|
||||
$p['file2.txt'] = 'there';
|
||||
$p['file2.txt']->setCompressedGZ();
|
||||
$p['file3.txt'] = 'babyface';
|
||||
$p['file3.txt']->setMetadata(42);
|
||||
$p->setStub("<?php
|
||||
function __autoload($class)
|
||||
{
|
||||
include 'phar://myphar.phar/' . str_replace('_', '/', $class) . '.php';
|
||||
}
|
||||
Phar::mapPhar('myphar.phar');
|
||||
include 'phar://myphar.phar/startup.php';
|
||||
__HALT_COMPILER();");
|
||||
$p->stopBuffering();
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::stopBuffering</function></member>
|
||||
<member><function>Phar::isBuffering</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
|
||||
-->
|
132
reference/phar/Phar/stopBuffering.xml
Normal file
132
reference/phar/Phar/stopBuffering.xml
Normal file
@ -0,0 +1,132 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="phar.stopbuffering">
|
||||
<refnamediv>
|
||||
<refname>Phar::stopBuffering</refname>
|
||||
<refpurpose>Останавливает буферизацию и записывает все изменения на диск</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>void</type><methodname>Phar::stopBuffering</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
|
||||
<para>
|
||||
Метод <function>Phar::stopBuffering</function> используется совместно с
|
||||
методом <function>Phar::startBuffering</function>.
|
||||
<function>Phar::startBuffering</function> может дать значительный прирост
|
||||
производительности при создании, либо модификации phar-архива с большим
|
||||
количеством файлов. Обычно, когда добавляется новый файл, либо
|
||||
изменяется существующий, запускается операция пересоздания phar-архива.
|
||||
С включенной буферизацией архив будет пересоздан один раз в самом конце
|
||||
внесения изменений.
|
||||
</para>
|
||||
<para>
|
||||
Эта концепция работает аналогично транзакции в базе данных, что
|
||||
позволяет сделать вне необходимые изменения и применить их
|
||||
одновременно, в рамках одной операции. Такое поведение обеспечивает пара
|
||||
методов <function>Phar::startBuffering</function>/<function>Phar::stopBuffering</function>.
|
||||
</para>
|
||||
<para>
|
||||
Настройки буферизации индивидуальны для каждого архива.
|
||||
Включенная буферизация для <literal>foo.phar</literal> никак не влияет
|
||||
на режим работы с <literal>bar.phar</literal>.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
&return.void;
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="errors">
|
||||
&reftitle.errors;
|
||||
<para>
|
||||
В случае проблем с записью на диск будет выброшено исключение <classname>PharException</classname>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::stopBuffering</function></title>
|
||||
<para>
|
||||
</para>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
|
||||
$p['file1.txt'] = 'hi';
|
||||
$p->startBuffering();
|
||||
var_dump($p->getStub());
|
||||
$p->setStub("<?php
|
||||
function __autoload(\$class)
|
||||
{
|
||||
include 'phar://brandnewphar.phar/' . str_replace('_', '/', \$class) . '.php';
|
||||
}
|
||||
Phar::mapPhar('brandnewphar.phar');
|
||||
include 'phar://brandnewphar.phar/startup.php';
|
||||
__HALT_COMPILER();");
|
||||
$p->stopBuffering();
|
||||
var_dump($p->getStub());
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
&example.outputs;
|
||||
<screen>
|
||||
<![CDATA[
|
||||
string(24) "<?php __HALT_COMPILER();"
|
||||
string(195) "<?php
|
||||
function __autoload($class)
|
||||
{
|
||||
include 'phar://' . str_replace('_', '/', $class);
|
||||
}
|
||||
Phar::mapPhar('brandnewphar.phar');
|
||||
include 'phar://brandnewphar.phar/startup.php';
|
||||
__HALT_COMPILER();"
|
||||
]]>
|
||||
</screen>
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::startBuffering</function></member>
|
||||
<member><function>Phar::isBuffering</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
|
||||
-->
|
116
reference/phar/Phar/unlinkArchive.xml
Normal file
116
reference/phar/Phar/unlinkArchive.xml
Normal file
@ -0,0 +1,116 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: d02c5d440d40731fa55938ff4e028eca84d54d82 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xml:id="phar.unlinkarchive" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<refnamediv>
|
||||
<refname>Phar::unlinkArchive</refname>
|
||||
<refpurpose>Полностью удалить архив из памяти и с диска</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>final</modifier> <modifier>public</modifier> <modifier>static</modifier> <type>bool</type><methodname>Phar::unlinkArchive</methodname>
|
||||
<methodparam><type>string</type><parameter>archive</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
Полностью удаляет архив из памяти и с диска.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>archive</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Путь к архиву на файловой системе.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
&return.success;
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="errors">
|
||||
&reftitle.errors;
|
||||
<para>
|
||||
В случае присутствия открытых файловых дескрипторов к архиву или
|
||||
объектов <classname>Phar</classname>, <classname>PharData</classname>,
|
||||
<classname>PharFileInfo</classname>, ссылающихся на этот архив, будет выброшено
|
||||
исключение <classname>PharException</classname>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::unlinkArchive</function></title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
// простое использование
|
||||
Phar::unlinkArchive('/path/to/my.phar');
|
||||
|
||||
// более частый вариант использования:
|
||||
$p = new Phar('my.phar');
|
||||
$fp = fopen('phar://my.phar/file.txt', 'r');
|
||||
// создается 'my.phar.gz'
|
||||
$gp = $p->compress(Phar::GZ);
|
||||
// удаляются все ссылки на архив
|
||||
unset($p);
|
||||
fclose($fp);
|
||||
// удаляются все следы существования
|
||||
Phar::unlinkArchive('my.phar');
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::delete</function></member>
|
||||
<member><function>Phar::offsetUnset</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
|
||||
-->
|
233
reference/phar/Phar/webPhar.xml
Normal file
233
reference/phar/Phar/webPhar.xml
Normal file
@ -0,0 +1,233 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 656d1610af1a960d87c8b7056e54d0d4c75fb123 Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xml:id="phar.webphar" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<refnamediv>
|
||||
<refname>Phar::webPhar</refname>
|
||||
<refpurpose>mapPhar для phar-архивов на базе веб. Контроллер фронтэнда для веб-приложений</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsect1 role="description">
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>final</modifier> <modifier>public</modifier> <modifier>static</modifier> <type>void</type><methodname>Phar::webPhar</methodname>
|
||||
<methodparam choice="opt"><type>string</type><parameter>alias</parameter></methodparam>
|
||||
<methodparam choice="opt"><type>string</type><parameter>index</parameter><initializer>"index.php"</initializer></methodparam>
|
||||
<methodparam choice="opt"><type>string</type><parameter>f404</parameter></methodparam>
|
||||
<methodparam choice="opt"><type>array</type><parameter>mimetypes</parameter></methodparam>
|
||||
<methodparam choice="opt"><type>callable</type><parameter>rewrites</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<function>Phar::mapPhar</function> для phar-архивов на базе веб. Этот метод разбиарет
|
||||
<varname>$_SERVER['REQUEST_URI']</varname> и маршрутизирует запросы веб-браузера
|
||||
к конкретному файлу в phar-архиве. Фактически это симуляция веб-сервера,
|
||||
перенаправляющего запросы к корректным файлам, возвращающим правильные
|
||||
заголовки и разбирающий PHP-файлы, если необходимо. Этот мощный метод является
|
||||
частью того, что упрощает преобразование существующего PHP-приложения в phar-архив.
|
||||
Совместно с <function>Phar::mungServer</function> и
|
||||
<function>Phar::interceptFileFuncs</function> он помогает запускать любое веб-приложение
|
||||
из phar-архива, никак его не меняя.
|
||||
</para>
|
||||
<para>
|
||||
<function>Phar::webPhar</function> должен вызываться только из
|
||||
загрузчика (stub) phar-архива (о том, что такое загрузчик и
|
||||
как с ним работать, читайте <link linkend="phar.fileformat.stub">тут</link>).
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
&reftitle.parameters;
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>alias</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Псевдоним для использования в обертках <literal>phar://</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>index</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Местоположение в phar-архиве индексного файла.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>f404</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Местоположение скрипта, отвечающего за обработку ошибки
|
||||
HTTP 404. Скрипт должен возвращать корректные заголовки для этой ошибки.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>mimetypes</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Массив сопоставления расширений файлов типам MIME.
|
||||
Если достаточно сопоставления по умолчанию, то передайте сюда пустой массив.
|
||||
По умолчанию используются такие сопоставления:
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$mimes = array(
|
||||
'phps' => Phar::PHPS, // передается в highlight_file()
|
||||
'c' => 'text/plain',
|
||||
'cc' => 'text/plain',
|
||||
'cpp' => 'text/plain',
|
||||
'c++' => 'text/plain',
|
||||
'dtd' => 'text/plain',
|
||||
'h' => 'text/plain',
|
||||
'log' => 'text/plain',
|
||||
'rng' => 'text/plain',
|
||||
'txt' => 'text/plain',
|
||||
'xsd' => 'text/plain',
|
||||
'php' => Phar::PHP, // разбирается как PHP
|
||||
'inc' => Phar::PHP, // разбирается как PHP
|
||||
'avi' => 'video/avi',
|
||||
'bmp' => 'image/bmp',
|
||||
'css' => 'text/css',
|
||||
'gif' => 'image/gif',
|
||||
'htm' => 'text/html',
|
||||
'html' => 'text/html',
|
||||
'htmls' => 'text/html',
|
||||
'ico' => 'image/x-ico',
|
||||
'jpe' => 'image/jpeg',
|
||||
'jpg' => 'image/jpeg',
|
||||
'jpeg' => 'image/jpeg',
|
||||
'js' => 'application/x-javascript',
|
||||
'midi' => 'audio/midi',
|
||||
'mid' => 'audio/midi',
|
||||
'mod' => 'audio/mod',
|
||||
'mov' => 'movie/quicktime',
|
||||
'mp3' => 'audio/mp3',
|
||||
'mpg' => 'video/mpeg',
|
||||
'mpeg' => 'video/mpeg',
|
||||
'pdf' => 'application/pdf',
|
||||
'png' => 'image/png',
|
||||
'swf' => 'application/shockwave-flash',
|
||||
'tif' => 'image/tiff',
|
||||
'tiff' => 'image/tiff',
|
||||
'wav' => 'audio/wav',
|
||||
'xbm' => 'image/xbm',
|
||||
'xml' => 'text/xml',
|
||||
);
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>rewrites</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Функция перезаписи, которой передается единственный строковый параметр и
|
||||
которая должна также вернуть строку, либо &false;.
|
||||
</para>
|
||||
<para>
|
||||
Если вы используете fast-cgi или cgi, то параметром, передаваемым в эту функцию
|
||||
будет значение переменной <varname>$_SERVER['PATH_INFO']</varname>.
|
||||
В ином случае передаваться будет значение переменной
|
||||
<varname>$_SERVER['REQUEST_URI']</varname>.
|
||||
</para>
|
||||
<para>
|
||||
Если будет возвращена строка, то она будет использована как путь
|
||||
к файлу внутри архива. Если вернется &false;, то webPhar() пошлет
|
||||
код ошибки HTTP 403.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
&return.void;
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="errors">
|
||||
&reftitle.errors;
|
||||
<para>
|
||||
Выбросит исключение <classname>PharException</classname>, если будет невозможно
|
||||
открыть какой либо файл, либо если вызывать ее не из загрузчика.
|
||||
Если в параметре <parameter>mimetypes</parameter> указать некорректный MIME-тип,
|
||||
или в <parameter>rewrites</parameter> будет передана некорректная функция
|
||||
обратного вызова, то будет выброшено исключение
|
||||
<classname>UnexpectedValueException</classname>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
<example>
|
||||
<title>Пример использования <function>Phar::webPhar</function></title>
|
||||
<para>
|
||||
В примере ниже, созданный phar отобразит <literal>Hello World</literal>
|
||||
при обращении из браузеа к <literal>/myphar.phar/index.php</literal> или к
|
||||
<literal>/myphar.phar</literal>, и отобразит исходный код
|
||||
<literal>index.phps</literal> при обращении к <literal>/myphar.phar/index.phps</literal>.
|
||||
</para>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
// создаем архив:
|
||||
try {
|
||||
$phar = new Phar('myphar.phar');
|
||||
$phar['index.php'] = '<?php echo "Hello World"; ?>';
|
||||
$phar['index.phps'] = '<?php echo "Hello World"; ?>';
|
||||
$phar->setStub('<?php
|
||||
Phar::webPhar();
|
||||
__HALT_COMPILER(); ?>');
|
||||
} catch (Exception $e) {
|
||||
// Обрабатываем ошибки
|
||||
}
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="seealso">
|
||||
&reftitle.seealso;
|
||||
<para>
|
||||
<simplelist>
|
||||
<member><function>Phar::mungServer</function></member>
|
||||
<member><function>Phar::interceptFileFuncs</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
|
||||
-->
|
Reference in New Issue
Block a user