diff --git a/reference/phar/Phar/createDefaultStub.xml b/reference/phar/Phar/createDefaultStub.xml
new file mode 100644
index 000000000..294cd3904
--- /dev/null
+++ b/reference/phar/Phar/createDefaultStub.xml
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+ Phar::createDefaultStub
+ Создать загрузчик в формате phar-архива
+
+
+ &reftitle.description;
+
+ finalpublicstaticstringPhar::createDefaultStub
+ stringindexfile
+ stringwebindexfile
+
+
+
+ Этот метод создает код загрузчика (stub) в специфичном для phar-архива формате
+ и не предназначеный для использования с файловыми архивами на основе tar или zip.
+
+
+ Phar-архивы содержат загрузчик (stub), написанный на
+ PHP, который запускается при запуске архива, когда его подключают через include:
+
+
+ ]]>
+
+ или просто запускают:
+
+
+
+
+
+ Этот метод предоставляет простой способ для создания загрузчика, который будет
+ отрабатывать при запуске phar-архива. Кроме того, можно указывать разные
+ файлы для запуска phar-архива через веб-сервер и через командрую строку.
+ Загрузчик также вызывает Phar::interceptFileFuncs
+ для простого создания приложений PHP с доступом к файловой системе.
+ Если расширение phar отсутствует, то загрузчик распакует phar-архив во временную
+ директорию и запустит приложение оттуда. Функция завершения работы удалит все
+ временные файлы.
+
+
+
+
+ &reftitle.returnvalues;
+
+ Возвращает текст с кодом загрузчика (stub), который позволит Phar-архиву запускаться
+ независимо от того, подключено ли расширение Phar или нет.
+
+
+
+
+ &reftitle.errors;
+
+ Бросит исключение UnexpectedValueException, если любой
+ из параметров будет длинее 400 байт.
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::createDefaultStub
+
+setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
+} catch (Exception $e) {
+ // обрабатываем ошибки
+}
+?>
+]]>
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::setStub
+ Phar::getStub
+
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/delMetadata.xml b/reference/phar/Phar/delMetadata.xml
new file mode 100644
index 000000000..a723600d4
--- /dev/null
+++ b/reference/phar/Phar/delMetadata.xml
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+ Phar::delMetadata
+ Удалить глобальные метаданные в архиве phar
+
+
+
+ &reftitle.description;
+
+ publicboolPhar::delMetadata
+
+
+ &phar.write;
+
+
+ Удаляет глобальные метаданные в архиве phar
+
+
+
+
+ &reftitle.parameters;
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ Возвращает &true; в случае успеха, но лучше использовать проверку исключений.
+
+
+
+
+ &reftitle.errors;
+
+ Бросает исключение PharException в случае ошибки при
+ сохранении изменений на диск.
+
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::delMetaData
+
+getMetadata());
+ $phar->setMetadata("hi there");
+ var_dump($phar->getMetadata());
+ $phar->delMetadata();
+ var_dump($phar->getMetadata());
+} catch (Exception $e) {
+ // handle errors
+}
+?>
+]]>
+
+ &example.outputs;
+
+
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::getMetadata
+ Phar::setMetadata
+ Phar::hasMetadata
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/extractTo.xml b/reference/phar/Phar/extractTo.xml
new file mode 100644
index 000000000..43b76d95f
--- /dev/null
+++ b/reference/phar/Phar/extractTo.xml
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+
+ Phar::extractTo
+ Извлечь содержимое phar-архива в директорию
+
+
+
+ &reftitle.description;
+
+ publicboolPhar::extractTo
+ stringpathto
+ string|arrayfiles
+ booloverwritefalse
+
+
+
+ Извлекает все файлы phar-архива на диск. Извлеченные файлы и директории сохраняют
+ все разрешения, которые у них были. Опциональные параметры позволяют контролировать,
+ какие именно файлы извлекать и нужно ли перезаписывать уже существующие.
+ Второй параметр files может быть как именем файла, так и
+ путем директории, которые надо извлекать. По умолчанию, уже существующие на диске
+ файлы перезаписываться не будут. Для указания, что нужно использовать перезапись,
+ используется третий параметр.
+ Этот метод аналогичен методу ZipArchive::extractTo.
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ pathto
+
+
+ Путь, по которому необходимо сохраните извлеченные файлы (files)
+
+
+
+
+ files
+
+
+ Имя файла или директории, которые надо извлечь. Либо архив с именами файлов/директорий
+
+
+
+
+ overwrite
+
+
+ Установите в &true;, если необходимо перезаписывать уже существующие файлы
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ Возвращает &true; в случае успеха. Но лучше использовать механизм перехвата исключений для контроля успешности.
+
+
+
+
+ &reftitle.errors;
+
+ Бросает исключение PharException в случае ошибки записи на диск.
+
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::extractTo
+
+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
+}
+?>
+]]>
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ PharData::extractTo
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/getMetadata.xml b/reference/phar/Phar/getMetadata.xml
new file mode 100644
index 000000000..93bd81a41
--- /dev/null
+++ b/reference/phar/Phar/getMetadata.xml
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+ Phar::getMetadata
+ Извлечь мета-данные phar-архива
+
+
+ &reftitle.description;
+
+ publicmixedPhar::getMetadata
+
+
+
+
+ Возвращает мета-данные phar-архива. Мета-данными может быть любая переменная PHP, которая может быть сериализована.
+
+
+
+
+ &reftitle.parameters;
+
+ Без параметров.
+
+
+
+ &reftitle.returnvalues;
+
+ любая переменная PHP, которая может быть сериализована и сохранена как мета-данные
+ Phar-архива, либо &null;, если мета-данные отсутствуют.
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::getMetadata
+
+
+
+setMetadata(array('bootstrap' => 'file.php'));
+ var_dump($p->getMetadata());
+} catch (Exception $e) {
+ echo 'Could not modify phar:', $e;
+}
+?>
+]]>
+
+ &example.outputs;
+
+
+ string(8) "file.php"
+}
+]]>
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::setMetadata
+ Phar::delMetadata
+ Phar::hasMetadata
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/getModified.xml b/reference/phar/Phar/getModified.xml
new file mode 100644
index 000000000..7d3a062e0
--- /dev/null
+++ b/reference/phar/Phar/getModified.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+ Phar::getModified
+ Определить, изменялся phar-архив
+
+
+ &reftitle.description;
+
+ publicboolPhar::getModified
+
+
+
+
+ Этот метод используется для определения, изменялось ли что либо в
+ phar-архиве.
+
+
+
+
+ &reftitle.parameters;
+
+ Без параметров.
+
+
+
+ &reftitle.returnvalues;
+
+ &true; - если архив после открытия изменялся и &false;, если нет.
+
+
+
+
+
+
diff --git a/reference/phar/Phar/getSignature.xml b/reference/phar/Phar/getSignature.xml
new file mode 100644
index 000000000..5598d3e76
--- /dev/null
+++ b/reference/phar/Phar/getSignature.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+ Phar::getSignature
+ Получить MD5/SHA1/SHA256/SHA512/OpenSSL подпись Phar-архива
+
+
+ &reftitle.description;
+
+ publicarrayPhar::getSignature
+
+
+
+
+ Возвращает проверочную подпись phar-архива в виде строки шестнадцатеричных цифр.
+
+
+
+
+ &reftitle.parameters;
+
+
+
+
+ &reftitle.returnvalues;
+
+ Массив, содержащий цифровую подпись открытого архива по ключу hash,
+ и MD5, SHA-1, SHA-256,
+ SHA-512 или OpenSSL по ключу
+ hash_type. Подпись - это хеш, вычесленный от содержимого
+ архива, которую можно использовать для проверки его целосности.
+ Корректная подпись требуется для всех запускаемых phar-архивов, если разрешена
+ INI-переменная phar.require_hash.
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/getStub.xml b/reference/phar/Phar/getStub.xml
new file mode 100644
index 000000000..49e989939
--- /dev/null
+++ b/reference/phar/Phar/getStub.xml
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+ Phar::getStub
+ Получить код загрузчика Phar-архива
+
+
+ &reftitle.description;
+
+ publicstringPhar::getStub
+
+
+
+
+ Phar-архивы содержат загрузчик (stub), написанный на
+ PHP, который запускается при запуске архива, когда его подключают через include:
+
+
+ ]]>
+
+ или просто запускают:
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ Возвращает строку, содержащую текст загрузчика текущего Phar-архива.
+
+
+
+
+ &reftitle.errors;
+
+ Бросает исключение RuntimeException, если по каким либо
+ причинам не может получить текст загрузчика.
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::getStub
+
+getStub();
+echo "==NEXT==\n";
+$p->setStub("");
+echo $p->getStub();
+?>
+]]>
+
+ &example.outputs;
+
+
+==NEXT==
+
+]]>
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::setStub
+ Phar::createDefaultStub
+
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/getSupportedSignatures.xml b/reference/phar/Phar/getSupportedSignatures.xml
new file mode 100644
index 000000000..2162eaf33
--- /dev/null
+++ b/reference/phar/Phar/getSupportedSignatures.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+ Phar::getSupportedSignatures
+ Получить массив поддерживаемых алгоритмов подписи архива
+
+
+
+ &reftitle.description;
+
+ finalpublicstaticarrayPhar::getSupportedSignatures
+
+
+
+ Возвращает массив поддерживаемых алгоритмов подписи архива
+
+
+
+
+ &reftitle.parameters;
+
+ Без параметров.
+
+
+
+
+ &reftitle.returnvalues;
+
+ Возвращает массив примерно такого содержания: MD5, SHA-1,
+ SHA-256, SHA-512, OpenSSL.
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::getSignature
+ Phar::setSignatureAlgorithm
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/getVersion.xml b/reference/phar/Phar/getVersion.xml
new file mode 100644
index 000000000..9c58b3369
--- /dev/null
+++ b/reference/phar/Phar/getVersion.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+ Phar::getVersion
+ Получить версию Phar-архива
+
+
+ &reftitle.description;
+
+ publicstringPhar::getVersion
+
+
+
+
+ Возвращает версию API открытого Phar-архива.
+
+
+
+
+ &reftitle.parameters;
+
+
+
+
+ &reftitle.returnvalues;
+
+ Версия API открытого архива. Не перепутайте с версией API загруженного
+ расширения phar. Каждый Phar-архив имеет жестко прописанную версию API,
+ с помощью которого его создавали, в манифесте.
+ Подробную документацию можно почитать на странице Формат файла Phar.
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::apiVersion
+
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/hasMetadata.xml b/reference/phar/Phar/hasMetadata.xml
new file mode 100644
index 000000000..c6ec54a5f
--- /dev/null
+++ b/reference/phar/Phar/hasMetadata.xml
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+ Phar::hasMetadata
+ Проверить, содержит ли phar-архив глобальные метаданные
+
+
+
+ &reftitle.description;
+
+ publicboolPhar::hasMetadata
+
+
+
+ Проверяет, содержит ли phar-архив глобальные метаданные.
+
+
+
+
+ &reftitle.parameters;
+
+ Без параметров.
+
+
+
+
+ &reftitle.returnvalues;
+
+ Возвращает &true; или &false;.
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::hasMetadata
+
+hasMetadata());
+ $phar->setMetadata(array('thing' => 'hi'));
+ var_dump($phar->hasMetadata());
+ $phar->delMetadata();
+ var_dump($phar->hasMetadata());
+} catch (Exception $e) {
+ // handle error
+}
+?>
+]]>
+
+ &example.outputs;
+
+
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::getMetadata
+ Phar::setMetadata
+ Phar::delMetadata
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/interceptFileFuncs.xml b/reference/phar/Phar/interceptFileFuncs.xml
new file mode 100644
index 000000000..b946208c2
--- /dev/null
+++ b/reference/phar/Phar/interceptFileFuncs.xml
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+ Phar::interceptFileFuncs
+ Указывает phar перехватывать fopen, file_get_contents, opendir и все stat-функции
+
+
+
+ &reftitle.description;
+
+ finalpublicstaticvoidPhar::interceptFileFuncs
+
+
+
+ Указывает phar перехватывать fopen, readfile,
+ file_get_contents, opendir и все
+ stat-функции. Если какая либо из этих функций будет вызвана из phar-архива с
+ относительным путем, то вызов будет модифицирован для доступа к содержимому
+ архива. В случае с абсолютными путями будут работать штатные функции доступа
+ к файловой системе.
+
+
+ Эта функция позволяет писать приложения работающие не привязанные к жесткому диску.
+
+
+
+
+ &reftitle.parameters;
+
+ No parameters.
+
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::interceptFileFuncs
+
+
+]]>
+
+
+
+
+ Предположим, что у нас есть /path/to/myphar.phar и в нем
+ содержатся файлы file.php и
+ file2.txt. file.php содержит такой код:
+
+
+
+ Пример использования Phar::interceptFileFuncs
+
+
+]]>
+
+
+
+
+ В обычном режиме, PHP будет искать file2.txt в текущей директории,
+ являющейся директорией запуска file.php, либо текущей директорией в случае
+ использования командной строки. Phar::interceptFileFuncs укажет
+ PHP, что текущая директория - это phar:///path/to/myphar.phar/ и,
+ для примера выше, будет открыт файл
+ phar:///path/to/myphar.phar/file2.txt.
+
+
+
+
+
+
diff --git a/reference/phar/Phar/isBuffering.xml b/reference/phar/Phar/isBuffering.xml
new file mode 100644
index 000000000..273554ba3
--- /dev/null
+++ b/reference/phar/Phar/isBuffering.xml
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+ Phar::isBuffering
+ Проверить, будут ли операции с Phar-архивом буферизованы или записаны напрямую на диск
+
+
+ &reftitle.description;
+
+ publicboolPhar::isBuffering
+
+
+
+
+ Проверяет, будут ли операции с Phar-архивом сразу записаны
+ на диск или для этого надо вызывать Phar::stopBuffering.
+
+
+ Настройки буферизации индивидуальны для каждого архива.
+ Включенная буферизация для foo.phar никак не влияет
+ на режим работы с bar.phar.
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ Возвращает &true; или &false;.
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::isBuffering
+
+
+
+isBuffering());
+var_dump($p2->isBuffering());
+?>
+=2=
+startBuffering();
+var_dump($p->isBuffering());
+var_dump($p2->isBuffering());
+$p->stopBuffering();
+?>
+=3=
+isBuffering());
+var_dump($p2->isBuffering());
+?>
+]]>
+
+ &example.outputs;
+
+
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::startBuffering
+ Phar::stopBuffering
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/isFileFormat.xml b/reference/phar/Phar/isFileFormat.xml
new file mode 100644
index 000000000..57642be77
--- /dev/null
+++ b/reference/phar/Phar/isFileFormat.xml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+ Phar::isFileFormat
+ Проверить, что phar-архив имеет заданный формат (tar/phar/zip)
+
+
+
+ &reftitle.description;
+
+ publicboolPhar::isFileFormat
+ intformat
+
+
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ format
+
+
+ Phar::PHAR, Phar::TAR или
+ Phar::ZIP, в зависимости от проверяемого формата.
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ Возвращает &true;, если phar-архив имеет указанный формат
+
+
+
+
+ &reftitle.errors;
+
+ В случае задания некорректного формата будет выброшено исключение PharException.
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::convertToExecutable
+ Phar::convertToData
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/isValidPharFilename.xml b/reference/phar/Phar/isValidPharFilename.xml
new file mode 100644
index 000000000..7e6a80e1a
--- /dev/null
+++ b/reference/phar/Phar/isValidPharFilename.xml
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+ Phar::isValidPharFilename
+ Проверяет, что заданное имя файла является корректным именем phar-архива
+
+
+
+ &reftitle.description;
+
+ finalpublicstaticboolPhar::isValidPharFilename
+ stringfilename
+ boolexecutabletrue
+
+
+
+ Проверяет, что заданное имя файла является корректным именем phar-архива.
+ Можно использовать для проверки имени файла до момента его непосредственного
+ создания, дабы избежать нежелательных исключений.
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ filename
+
+
+ Имя или полный путь до файла, который еще не создан
+
+
+
+
+ executable
+
+
+ Этот параметр определяет, должен ли файл опозноваться как
+ запускаемый phar-архив, или как незапускаемый архив с данными
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ Возвращает &true; или &false;.
+
+
+
+
+
diff --git a/reference/phar/Phar/isWritable.xml b/reference/phar/Phar/isWritable.xml
new file mode 100644
index 000000000..7c1d8c6a8
--- /dev/null
+++ b/reference/phar/Phar/isWritable.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+ Phar::isWritable
+ Проверяет, можно ли модифицировать phar-архив
+
+
+
+ &reftitle.description;
+
+ publicboolPhar::isWritable
+
+
+
+ Этот метод возвращает &true; если phar.readonly установлен в
+ 0, архив существует и доступен для записи.
+
+
+
+
+ &reftitle.parameters;
+
+ Параметров нет.
+
+
+
+
+ &reftitle.returnvalues;
+
+ Возвращает &true; если архив можно модифицировать
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::canWrite
+ PharData::isWritable
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/loadPhar.xml b/reference/phar/Phar/loadPhar.xml
new file mode 100644
index 000000000..959b47285
--- /dev/null
+++ b/reference/phar/Phar/loadPhar.xml
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+ Phar::loadPhar
+ Загрузить phar-архив с псевдонимом
+
+
+ &reftitle.description;
+
+ finalpublicstaticboolPhar::loadPhar
+ stringfilename
+ stringalias
+
+
+
+ Может использоваться для загрузки внешнего Phar-архива.
+ То, что для phar-архива назначается псевдоним, позволяет в дальнейшем
+ использовать более короткие ссылки для доступа к нему или же для загрузки архивов Phar,
+ содержащих только данные и не предназначеных для выполнения.
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ filename
+
+
+ Путь к загружаемому phar-архиву
+
+
+
+
+ alias
+
+
+ Псевдоним для доступа к архиву. Обратите внимание, что многие
+ phar-архивы имеют свой явно заданный псевдоним и, при задании нового псевдонима,
+ будет выброшено исключение PharException.
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ &return.success;
+
+
+
+
+ &reftitle.errors;
+
+ Если задан параметр с псевдонимом, а загружаемый архив уже имеет псевдоним, то будет
+ выброшено исключение PharException
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::loadPhar
+
+ Phar::loadPhar можно использовать где угодно, тогда как
+ Phar::mapPhar только в загрузчике (stub) Phar-архива.
+
+
+
+]]>
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::mapPhar
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/mapPhar.xml b/reference/phar/Phar/mapPhar.xml
new file mode 100644
index 000000000..8c60d4c73
--- /dev/null
+++ b/reference/phar/Phar/mapPhar.xml
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+
+ Phar::mapPhar
+ Прочитать текущий запущенный phar-архив и зарегистрировать его манифест
+
+
+ &reftitle.description;
+
+ finalpublicstaticboolPhar::mapPhar
+ stringalias
+ intdataoffset0
+
+
+
+ Этот статический метод можно использовать только в загрузчике (stub)
+ Phar-архива в целях его инициализации, когда он запущен напрямую, либо
+ включен в другой скрипт.
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ alias
+
+
+ Псевдоним можно использовать в обертках phar://, ссылаясь
+ на этот архив, вместо использования полного пути.
+
+
+
+
+ dataoffset
+
+
+ Неиспользуемая переменная. Существует только для совместимости с PEAR-пакетом
+ PHP_Archive.
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ &return.success;
+
+
+
+
+ &reftitle.errors;
+
+ Выбрасывается исключение PharException, если вызывается
+ из скрипта, в котором не обнаружено токена __HALT_COMPILER();, либо если
+ файл недоступен для чтения.
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::mapPhar
+
+ Phar::loadPhar можно использовать где угодно, тогда как
+ Phar::mapPhar только в загрузчике (stub) Phar-архива.
+
+
+ Простой загрузчик Phar, использующий mapPhar.
+
+
+getMessage();
+ die('Cannot initialize Phar');
+}
+__HALT_COMPILER();
+]]>
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::loadPhar
+
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/mount.xml b/reference/phar/Phar/mount.xml
new file mode 100644
index 000000000..8d6258c28
--- /dev/null
+++ b/reference/phar/Phar/mount.xml
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+
+ Phar::mount
+ Монтирование внешнего путь или файла к виртуальному пути в phar-архиве
+
+
+
+ &reftitle.description;
+
+ finalpublicstaticvoidPhar::mount
+ stringpharpath
+ stringexternalpath
+
+
+ Очень похоже на концепцию файловой системы unix по монтированию внешнего
+ устройства в существующее дерево директорий. Phar::mount
+ позволяет ссылаться на внешние файлы и директории, как будто они находятся
+ внутри архива. Это позволяет повысить уровень абстракции обращаясь ко внешним
+ конфигурационным файлам так, как будто они являются частью архива.
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ pharpath
+
+
+ Внутренний путь в архиве, по которому необходимо примонтировать внешний путь.
+ Это должен быть не существующий относительный путь внутри архива.
+
+
+
+
+ externalpath
+
+
+ Путь или URL внешнего файла или директории
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ Ничего не возвращает. В случае ошибки бросает исключение PharException.
+
+
+
+
+ &reftitle.errors;
+
+ Бросает исключение PharException при возникновении ошибок.
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::mount
+
+ В следующем примере демонстрируется доступ к внешнему конфигурационному файлу,
+ как будто он находится внутри архива.
+
+
+ Для начала код, содержащийся в архиве:
+
+
+
+]]>
+
+
+ Далее внешний код, монтирующий файл в архив:
+
+
+
+]]>
+
+
+ Другой метод - поместить монтирующий код а загрузчик (stub) внутрь архива.
+ Пример использования конфигурационного файла по умолчанию,
+ если пользовательский файл конфигурации не задан:
+
+
+
+]]>
+
+
+ ... и код для загрузки этого phar-архива:
+
+
+
+]]>
+
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/mungServer.xml b/reference/phar/Phar/mungServer.xml
new file mode 100644
index 000000000..5d8079eb9
--- /dev/null
+++ b/reference/phar/Phar/mungServer.xml
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+
+ Phar::mungServer
+ Определить список до четырех $_SERVER-переменных, которые должны быть изменены для запуска
+
+
+
+ &reftitle.description;
+
+ finalpublicstaticvoidPhar::mungServer
+ arraymunglist
+
+
+ Функция Phar::mungServer должна вызываться только в загрузчике.
+
+
+ Определяет список до четырех $_SERVER-переменных, которые
+ необходимо модифицировать для запуска.
+ Модификация заключается в удалении следов запуска из phar-архива для
+ переменных REQUEST_URI, PHP_SELF,
+ SCRIPT_NAME и SCRIPT_FILENAME.
+
+
+ Сам по себе этот метод ничего не делает. Эффект достигается только в комбинации
+ с Phar::webPhar и только если запрошенный файл является
+ PHP-файлом для разбора. Обратите внимание, что переменные
+ PATH_INFO и PATH_TRANSLATED всегда
+ модифицированы.
+
+
+ Оригинальные значения изменяемых переменных будут сохранены в массиве SERVER
+ с префиксами PHAR_. Например, оригинальное значение
+ SCRIPT_NAME будет записано в PHAR_SCRIPT_NAME.
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ munglist
+
+
+ Массив, содержащий комбинацию из:
+ REQUEST_URI, PHP_SELF,
+ SCRIPT_NAME и SCRIPT_FILENAME.
+ Любые другие значения вызывут исключение.
+ Обратите внимание, что функция Phar::mungServer чуствительна к
+ регистру символов.
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ Ничего не возвращает.
+
+
+
+
+ &reftitle.errors;
+
+ Бросает исключение UnexpectedValueException, если входные
+ данные некоректны.
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::mungServer
+
+
+]]>
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::webPhar
+ Phar::setStub
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/offsetExists.xml b/reference/phar/Phar/offsetExists.xml
new file mode 100644
index 000000000..db87ebc55
--- /dev/null
+++ b/reference/phar/Phar/offsetExists.xml
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+ Phar::offsetExists
+ Определить, есть ли файл в архиве
+
+
+ &reftitle.description;
+
+ publicboolPhar::offsetExists
+ stringoffset
+
+
+ Это реализация интерфейса ArrayAccess,
+ позволяющаа манипулировать содержимым Phar-архива в стиле доступа к элементам
+ массива.
+
+
+ offsetExists() запускается каждый раз, когда вызывается isset.
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ offset
+
+
+ Имя файла (относительный путь).
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ Возвращает &true;, если файл присутствует в архиве и &false;, если нет.
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::offsetExists
+
+
+]]>
+
+ &example.outputs;
+
+
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::offsetGet
+ Phar::offsetSet
+ Phar::offsetUnset
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/offsetGet.xml b/reference/phar/Phar/offsetGet.xml
new file mode 100644
index 000000000..8ff2db6c3
--- /dev/null
+++ b/reference/phar/Phar/offsetGet.xml
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+ Phar::offsetGet
+ Получить объект PharFileInfo для конкретного файла
+
+
+ &reftitle.description;
+
+ publicintPhar::offsetGet
+ stringoffset
+
+
+
+ Это реализация интерфейса ArrayAccess,
+ позволяющаа манипулировать содержимым Phar-архива в стиле доступа к элементам
+ массива. Phar::offsetGet используется для
+ извлечения файлов из архива.
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ offset
+
+
+ Имя файла (относительный путь).
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ Объект класса PharFileInfo. Можно использовать
+ для получения информации о файле и для извлечения контента через итерирование.
+
+
+
+
+ &reftitle.errors;
+
+ Бросает исключение BadMethodCallException, если такого файла нет.
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::offsetGet
+
+ Как и для любого другого класса, реализующего ArrayAccess,
+ метод Phar::offsetGet будет вызван автоматически
+ при использовании оператора [].
+
+
+
+]]>
+
+ &example.outputs;
+
+
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::offsetExists
+ Phar::offsetSet
+ Phar::offsetUnset
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/offsetSet.xml b/reference/phar/Phar/offsetSet.xml
new file mode 100644
index 000000000..37abb0b45
--- /dev/null
+++ b/reference/phar/Phar/offsetSet.xml
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+ Phar::offsetSet
+ Изменение содержимого файла
+
+
+ &reftitle.description;
+
+ publicvoidPhar::offsetSet
+ stringoffset
+ stringvalue
+
+ &phar.write;
+
+
+
+ Это реализация интерфейса ArrayAccess,
+ позволяющаа манипулировать содержимым Phar-архива в стиле доступа к элементам
+ массива. offsetSet используется для изменения контента существующего
+ файла, либо для создания нового.
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ offset
+
+
+ Имя файла (относительный путь).
+
+
+
+
+ value
+
+
+ Содержимое файла.
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ Ничего не возвращает.
+
+
+
+
+ &reftitle.errors;
+
+ Если phar.readonly установлен в
+ 1, то будет выброшено исключение
+ BadMethodCallException, так как модифицировать Phar-архив
+ можно только, если phar.readonly равен 0. Если возникнут
+ какие либо проблемы с записью на диск - будет выброшено исключение
+ PharException.
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::offsetSet
+
+ offsetSet не нужно вызывать напрямую. Используйте синтаксис [].
+
+
+
+]]>
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::offsetExists
+ Phar::offsetGet
+ Phar::offsetUnset
+
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/offsetUnset.xml b/reference/phar/Phar/offsetUnset.xml
new file mode 100644
index 000000000..045d47043
--- /dev/null
+++ b/reference/phar/Phar/offsetUnset.xml
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+ Phar::offsetUnset
+ Удалить файл из phar-архива
+
+
+ &reftitle.description;
+
+ publicboolPhar::offsetUnset
+ stringoffset
+
+ &phar.write;
+
+
+
+ Это реализация интерфейса ArrayAccess,
+ позволяющаа манипулировать содержимым Phar-архива в стиле доступа к элементам
+ массива. offsetUnset используется для удаления файлов и запускается каждый раз,
+ когда используется конструкция unset.
+
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ offset
+
+
+ Имя файла (относительный путь).
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ &return.success;
+
+
+
+
+ &reftitle.errors;
+
+ Если phar.readonly установлен в
+ 1, то будет выброшено исключение
+ BadMethodCallException, так как модифицировать Phar-архив
+ можно только, если phar.readonly равен 0. Если возникнут
+ какие либо проблемы с записью на диск - будет выброшено исключение
+ PharException.
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::offsetUnset
+
+
+]]>
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::offsetExists
+ Phar::offsetGet
+ Phar::offsetSet
+ Phar::unlinkArchive
+ Phar::delete
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/running.xml b/reference/phar/Phar/running.xml
new file mode 100644
index 000000000..38458e9ff
--- /dev/null
+++ b/reference/phar/Phar/running.xml
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+ Phar::running
+ Получить полный путь на диске, либо полный URL запущенного Phar-архива
+
+
+
+ &reftitle.description;
+
+ finalpublicstaticstringPhar::running
+ boolretphartrue
+
+
+
+ Возвращает полный путь запущенного phar-архива. Используется для того же, для
+ чего используется константа __FILE__ и работает только внутри
+ запущенного phar-архива.
+
+
+ При запуске Phar::running из загрузчика результат будет
+ "". Внутри загрузчика используйте
+ константу __FILE__.
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ retphar
+
+
+ Если &false;, то будет возвращен полный дисковый путь к phar-архиву.
+ Если &true;, то будет возвращен полный URL.
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ Вернет путь, если он корректен, либо пустую строку.
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::running
+
+ Для следующего примера предположим, что архив лежит по пути
+ /path/to/phar/my.phar.
+
+
+
+]]>
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/setAlias.xml b/reference/phar/Phar/setAlias.xml
new file mode 100644
index 000000000..d0b8d54a0
--- /dev/null
+++ b/reference/phar/Phar/setAlias.xml
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+ Phar::setAlias
+ Установить псевдоним для Phar-архива
+
+
+
+ &reftitle.description;
+
+ publicboolPhar::setAlias
+ stringalias
+
+ &phar.write;
+
+
+ Устанавливает псевдоним для Phar-архива и записывает его как постоянный
+ псевдоним для этого архива. Псевдоним можно использовать внутри phar-архива для
+ уверенности в том, что доступ через потоковую обертку phar для
+ доступа к внутренним файлам будет работать всегда, независимо от местоположения
+ phar-архива на файловой системе. Другой альтернативой является надежда на
+ перехват include или использование
+ Phar::interceptFileFuncs совместно с относительными путями.
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ alias
+
+
+ Короткое имя, которое можно будет использовать с доступом
+ через потоковую обертку phar.
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+ &reftitle.errors;
+
+ Бросает исключение UnexpectedValueException, если
+ досьтуп запрещен и PharException, если псевдоним
+ уже используется, или возникли проблемы с записью на диск.
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::setAlias
+
+setAlias('myp.phar');
+} catch (Exception $e) {
+ // обрабатываем ошибки
+}
+?>
+]]>
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::__construct
+ Phar::interceptFileFuncs
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/setDefaultStub.xml b/reference/phar/Phar/setDefaultStub.xml
new file mode 100644
index 000000000..5ffef04af
--- /dev/null
+++ b/reference/phar/Phar/setDefaultStub.xml
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+ Phar::setDefaultStub
+ Установить в качестве загрузчика (stub) загрузчик по умолчанию
+
+
+ &reftitle.description;
+
+ publicboolPhar::setDefaultStub
+ stringindex
+ stringwebindex
+
+ &phar.write;
+
+ Этот метод комбинирует функционал двух других методов,
+ Phar::createDefaultStub и Phar::setStub.
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ index
+
+
+ Относительный путь в phar-архиве для запуска при доступе из командной строки
+
+
+
+
+ webindex
+
+
+ Относительный путь в phar-архиве для запуска при доступе из веб-браузера
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ &return.success;
+
+
+
+
+ &reftitle.errors;
+
+ Будет брошено исключение UnexpectedValueException,
+ если phar.readonly разрешено в php.ini.
+ В случае проблем с записью на диск будет выброшено исключение
+ PharException.
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::setDefaultStub
+
+
+
+setDefaultStub('cli.php', 'web/index.php');
+ // это аналогично такому коду:
+ // $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
+} catch (Exception $e) {
+ // handle errors
+}
+?>
+]]>
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::setStub
+ Phar::createDefaultStub
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/setMetadata.xml b/reference/phar/Phar/setMetadata.xml
new file mode 100644
index 000000000..84b698c78
--- /dev/null
+++ b/reference/phar/Phar/setMetadata.xml
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+
+ Phar::setMetadata
+ Установить мета-данные phar-архива
+
+
+
+
+ &reftitle.description;
+
+ publicvoidPhar::setMetadata
+ mixedmetadata
+
+ &phar.write;
+
+
+ Функция Phar::setMetadata используется для сохранения
+ данных, характеризующих phar-архив в целом.
+ PharFileInfo::setMetadata используется для установки мета-данных
+ для конкретного файла. Если мета-данных будет много, то это может снизить
+ скорость загрузки phar-архива.
+
+
+ Мета-данные можно использовать, например, для указания, какой файл должен
+ исполняться при загрузке, или для указагния местоположения манифеста,
+ типа package.xml для модуля PEAR.
+ В общем, любые полезные в контексте phar-архива данные.
+
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ metadata
+
+
+ Любая переменная PHP, содержащая необходимую информацию
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ &return.void;
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::setMetadata
+
+
+
+setMetadata(array('bootstrap' => 'file.php'));
+ var_dump($p->getMetadata());
+} catch (Exception $e) {
+ echo 'Не могу создать/изменить phar:', $e;
+}
+?>
+]]>
+
+ &example.outputs;
+
+
+ string(8) "file.php"
+}
+]]>
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::getMetadata
+ Phar::delMetadata
+ Phar::hasMetadata
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/setSignatureAlgorithm.xml b/reference/phar/Phar/setSignatureAlgorithm.xml
new file mode 100644
index 000000000..595cd815f
--- /dev/null
+++ b/reference/phar/Phar/setSignatureAlgorithm.xml
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+ Phar::setSignatureAlgorithm
+ Установить алгоритм подписания phar-архива и применение его
+
+
+
+ &reftitle.description;
+
+ publicvoidPhar::setSignatureAlgorithm
+ intsigtype
+ stringprivatekey
+
+ &phar.write;
+
+
+ Устанавливает алгоритм подписания phar-архива и применяет его.
+ Доступны следующие алгоритмы подписания: Phar::MD5,
+ Phar::SHA1, Phar::SHA256,
+ Phar::SHA512 и Phar::OPENSSL.
+
+
+ Обратите внимание, что для всех исполняемых phar-архивов подпись создается
+ автоматически, с использованием по умолчанию SHA1.
+ Архивы с данными на основе tar или zip
+ (созданные с помощью класса PharData) должны иметь
+ явно созданную с помощью Phar::setSignatureAlgorithm подпись.
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ sigtype
+
+
+ Одна из констант: Phar::MD5,
+ Phar::SHA1, Phar::SHA256,
+ Phar::SHA512 или Phar::OPENSSL
+
+
+
+
+ privatekey
+
+
+ Секретный ключ OpenSSL, извлеченный из сертификата, либо файл с ключем OpenSSL:
+
+setSignatureAlgorithm(Phar::OPENSSL, $pkey);
+?>
+ ]]>
+
+ Подробности об именовании и размещении файла открытого ключа
+ читайте в разделе введение в phar.
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ &return.void;
+
+
+
+
+ &reftitle.errors;
+
+ Бросает исключение UnexpectedValueException
+ при любых ошибках, кроме ошибок записи на диск. При ошибках записи на диск
+ бросает исключение PharException.
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::getSupportedSignatures
+ Phar::getSignature
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/setStub.xml b/reference/phar/Phar/setStub.xml
new file mode 100644
index 000000000..8c05e27cf
--- /dev/null
+++ b/reference/phar/Phar/setStub.xml
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+
+ Phar::setStub
+ Добавить загрузчик(stub) в Phar-архив
+
+
+ &reftitle.description;
+
+ publicboolPhar::setStub
+ stringstub
+ intlen-1
+
+ &phar.write;
+
+
+
+ Этот метод используется для добавления PHP-загрузчика в новый Phar-архив, либо
+ для замены уже существующего загрузчика.
+
+
+ Загрузчик используется при подключении Phar-архива с помощью included:
+
+
+
+ ]]>
+
+
+ Загрузчик не используется, когда архив подключается с использованием обертки
+ phar, как в примере ниже:
+
+
+
+ ]]>
+
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ stub
+
+
+ Строка, либо открытый ресурс потока.
+
+
+
+
+ len
+
+
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ &return.success;
+
+
+
+
+ &reftitle.errors;
+
+ Будет брошено исключение UnexpectedValueException,
+ если phar.readonly разрешено в php.ini.
+ В случае проблем с записью на диск будет выброшено исключение
+ PharException.
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::setStub
+
+
+
+setStub('');
+ include 'phar://brandnewphar.phar/a.php';
+ var_dump($p->getStub());
+ $p['b.php'] = 'setStub('');
+ include 'phar://brandnewphar.phar/b.php';
+ var_dump($p->getStub());
+} catch (Exception $e) {
+ echo 'Write operations failed on brandnewphar.phar: ', $e;
+}
+?>
+]]>
+
+ &example.outputs;
+
+"
+string(5) "World"
+string(83) ""
+]]>
+
+
+
+
+
+
+ &reftitle.changelog;
+
+
+
+
+
+ &Version;
+ &Description;
+
+
+
+
+ 5.4.0
+
+ Добавлен параметр len.
+
+
+
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::getStub
+ Phar::createDefaultStub
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/startBuffering.xml b/reference/phar/Phar/startBuffering.xml
new file mode 100644
index 000000000..72baef05a
--- /dev/null
+++ b/reference/phar/Phar/startBuffering.xml
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+ Phar::startBuffering
+ Запускает буферизацию операций записи, отключая запись изменений Phar-архива на диск
+
+
+ &reftitle.description;
+
+ publicvoidPhar::startBuffering
+
+
+
+
+ Метод Phar::startBuffering может дать значительный прирост
+ производительности при создании, либо модификации phar-архива с большим
+ количеством файлов. Обычно, когда добавляется новый файл, либо
+ изменяется существующий, запускается операция пересоздания phar-архива.
+ С включенной буферизацией архив будет пересоздан один раз в самом конце
+ внесения изменений.
+
+
+ Эта концепция работает аналогично транзакции в базе данных, что
+ позволяет сделать вне необходимые изменения и применить их
+ одновременно, в рамках одной операции. Такое поведение обеспечивает пара
+ методов Phar::startBuffering/Phar::stopBuffering.
+
+
+ Настройки буферизации индивидуальны для каждого архива.
+ Включенная буферизация для foo.phar никак не влияет
+ на режим работы с bar.phar.
+
+
+
+
+ &reftitle.returnvalues;
+
+ &return.void;
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::startBuffering
+
+
+
+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("stopBuffering();
+?>
+]]>
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::stopBuffering
+ Phar::isBuffering
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/stopBuffering.xml b/reference/phar/Phar/stopBuffering.xml
new file mode 100644
index 000000000..44fb14b3a
--- /dev/null
+++ b/reference/phar/Phar/stopBuffering.xml
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+
+ Phar::stopBuffering
+ Останавливает буферизацию и записывает все изменения на диск
+
+
+ &reftitle.description;
+
+ publicvoidPhar::stopBuffering
+
+
+
+
+ Метод Phar::stopBuffering используется совместно с
+ методом Phar::startBuffering.
+ Phar::startBuffering может дать значительный прирост
+ производительности при создании, либо модификации phar-архива с большим
+ количеством файлов. Обычно, когда добавляется новый файл, либо
+ изменяется существующий, запускается операция пересоздания phar-архива.
+ С включенной буферизацией архив будет пересоздан один раз в самом конце
+ внесения изменений.
+
+
+ Эта концепция работает аналогично транзакции в базе данных, что
+ позволяет сделать вне необходимые изменения и применить их
+ одновременно, в рамках одной операции. Такое поведение обеспечивает пара
+ методов Phar::startBuffering/Phar::stopBuffering.
+
+
+ Настройки буферизации индивидуальны для каждого архива.
+ Включенная буферизация для foo.phar никак не влияет
+ на режим работы с bar.phar.
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ &return.void;
+
+
+
+
+ &reftitle.errors;
+
+ В случае проблем с записью на диск будет выброшено исключение PharException.
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::stopBuffering
+
+
+
+startBuffering();
+var_dump($p->getStub());
+$p->setStub("stopBuffering();
+var_dump($p->getStub());
+?>
+]]>
+
+ &example.outputs;
+
+
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::startBuffering
+ Phar::isBuffering
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/unlinkArchive.xml b/reference/phar/Phar/unlinkArchive.xml
new file mode 100644
index 000000000..5f9a68ac1
--- /dev/null
+++ b/reference/phar/Phar/unlinkArchive.xml
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+ Phar::unlinkArchive
+ Полностью удалить архив из памяти и с диска
+
+
+
+ &reftitle.description;
+
+ finalpublicstaticboolPhar::unlinkArchive
+ stringarchive
+
+
+ Полностью удаляет архив из памяти и с диска.
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ archive
+
+
+ Путь к архиву на файловой системе.
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ &return.success;
+
+
+
+
+ &reftitle.errors;
+
+ В случае присутствия открытых файловых дескрипторов к архиву или
+ объектов Phar, PharData,
+ PharFileInfo, ссылающихся на этот архив, будет выброшено
+ исключение PharException.
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::unlinkArchive
+
+compress(Phar::GZ);
+// удаляются все ссылки на архив
+unset($p);
+fclose($fp);
+// удаляются все следы существования
+Phar::unlinkArchive('my.phar');
+?>
+]]>
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::delete
+ Phar::offsetUnset
+
+
+
+
+
+
+
diff --git a/reference/phar/Phar/webPhar.xml b/reference/phar/Phar/webPhar.xml
new file mode 100644
index 000000000..43d1c2a67
--- /dev/null
+++ b/reference/phar/Phar/webPhar.xml
@@ -0,0 +1,233 @@
+
+
+
+
+
+
+
+ Phar::webPhar
+ mapPhar для phar-архивов на базе веб. Контроллер фронтэнда для веб-приложений
+
+
+
+ &reftitle.description;
+
+ finalpublicstaticvoidPhar::webPhar
+ stringalias
+ stringindex"index.php"
+ stringf404
+ arraymimetypes
+ callablerewrites
+
+
+ Phar::mapPhar для phar-архивов на базе веб. Этот метод разбиарет
+ $_SERVER['REQUEST_URI'] и маршрутизирует запросы веб-браузера
+ к конкретному файлу в phar-архиве. Фактически это симуляция веб-сервера,
+ перенаправляющего запросы к корректным файлам, возвращающим правильные
+ заголовки и разбирающий PHP-файлы, если необходимо. Этот мощный метод является
+ частью того, что упрощает преобразование существующего PHP-приложения в phar-архив.
+ Совместно с Phar::mungServer и
+ Phar::interceptFileFuncs он помогает запускать любое веб-приложение
+ из phar-архива, никак его не меняя.
+
+
+ Phar::webPhar должен вызываться только из
+ загрузчика (stub) phar-архива (о том, что такое загрузчик и
+ как с ним работать, читайте тут).
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ alias
+
+
+ Псевдоним для использования в обертках phar://.
+
+
+
+
+ index
+
+
+ Местоположение в phar-архиве индексного файла.
+
+
+
+
+ f404
+
+
+ Местоположение скрипта, отвечающего за обработку ошибки
+ HTTP 404. Скрипт должен возвращать корректные заголовки для этой ошибки.
+
+
+
+
+ mimetypes
+
+
+ Массив сопоставления расширений файлов типам MIME.
+ Если достаточно сопоставления по умолчанию, то передайте сюда пустой массив.
+ По умолчанию используются такие сопоставления:
+
+ 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',
+);
+?>
+ ]]>
+
+
+
+
+
+ rewrites
+
+
+ Функция перезаписи, которой передается единственный строковый параметр и
+ которая должна также вернуть строку, либо &false;.
+
+
+ Если вы используете fast-cgi или cgi, то параметром, передаваемым в эту функцию
+ будет значение переменной $_SERVER['PATH_INFO'].
+ В ином случае передаваться будет значение переменной
+ $_SERVER['REQUEST_URI'].
+
+
+ Если будет возвращена строка, то она будет использована как путь
+ к файлу внутри архива. Если вернется &false;, то webPhar() пошлет
+ код ошибки HTTP 403.
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ &return.void;
+
+
+
+
+ &reftitle.errors;
+
+ Выбросит исключение PharException, если будет невозможно
+ открыть какой либо файл, либо если вызывать ее не из загрузчика.
+ Если в параметре mimetypes указать некорректный MIME-тип,
+ или в rewrites будет передана некорректная функция
+ обратного вызова, то будет выброшено исключение
+ UnexpectedValueException.
+
+
+
+
+ &reftitle.examples;
+
+
+ Пример использования Phar::webPhar
+
+ В примере ниже, созданный phar отобразит Hello World
+ при обращении из браузеа к /myphar.phar/index.php или к
+ /myphar.phar, и отобразит исходный код
+ index.phps при обращении к /myphar.phar/index.phps.
+
+
+';
+ $phar['index.phps'] = '';
+ $phar->setStub('');
+} catch (Exception $e) {
+ // Обрабатываем ошибки
+}
+?>
+]]>
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ Phar::mungServer
+ Phar::interceptFileFuncs
+
+
+
+
+
+
+