Phar::mapPhar

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::mapPharПрочитать текущий запущенный phar-архив и зарегистрировать его манифест

Описание

final public static Phar::mapPhar(?string $alias = null, int $offset = 0): bool

Этот статический метод можно использовать только в заглушке загрузчика Phar-архива в целях его инициализации, когда он запущен напрямую, либо включён в другой скрипт.

Список параметров

alias

Псевдоним можно использовать в обёртках phar://, ссылаясь на этот архив, вместо использования полного пути.

offset

Неиспользуемая переменная. Существует только для совместимости с PEAR-пакетом PHP_Archive.

Возвращаемые значения

Функция возвращает true, если выполнилась успешно, или false, если возникла ошибка.

Ошибки

Выбрасывается исключение PharException, если вызывается из скрипта, в котором не обнаружено токена __HALT_COMPILER();, либо если файл недоступен для чтения.

Примеры

Пример #1 Пример использования Phar::mapPhar()

Phar::mapPhar следует использовать только внутри загрузчика заглушки Phar-архива. Используйте loadPhar для загрузки внешнего phar в память.

Простой загрузчик Phar, использующий mapPhar.

<?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();

Смотрите также

  • Phar::loadPhar() - Загрузить phar-архив с псевдонимом

Добавить

Примечания пользователей 1 note

up
1
phofstetter at sensational dot ch
11 years ago
Be careful with mapPhar and opcode caches like opcache: They might cache files included by the symbolic name based on the symbolic name you give.This becomes a problem when a server is hosting multiple different versions of a phar file all using the same symbolic name because then subsequent include()'s in the phar file might load an already cached file from another version of the phar file.Instead, generate a unique name and use that in mapPhar and in subsequent include()'sSee for example https://github.com/zendtech/ZendOptimizerPlus/issues/115#issuecomment-25612769 for the issue in the opcache module.
To Top