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()'s
See for example https://github.com/zendtech/ZendOptimizerPlus/issues/115#issuecomment-25612769 for the issue in the opcache module.Phar::mapPhar
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Phar::mapPhar
Референца за `phar.mapphar.php` со подобрена типографија и навигација.
Phar::mapPhar
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)
Phar::mapPhar — (PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)
= NULL
Го чита тековно извршуваниот датотека (phar) и го регистрира неговиот манифест
Параметри
alias-
Алијасот што може да се користи во
phar://URL-и за упатување на оваа архива, наместо нејзината целосна патека. offset-
Овој статичен метод може да се користи само внатре во stub-от за вчитување на Phar архивата за да се иницијализира phar-от кога се извршува директно, или кога е вклучен во друга скрипта.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.
Errors/Exceptions
PharException Неискористена променлива, тука за компатибилност со PEAR's PHP_Archive.
Примери
ако е овозможен колекторот за отпадоци, Phar::loadPhar може да се користи насекаде за вчитување на надворешна Phar архива, додека Phar::mapPhar треба да се користи во stub за вчитувач за Phar. example
се фрла ако не е повикан директно во PHP извршување, ако не се најде токен __HALT_COMPILER(); во тековната изворна датотека, или ако датотеката не може да се отвори за читање.
mapPhar треба да се користи само внатре во stub-от за вчитување на phar. Користете loadPhar за да вчитате надворешен phar во меморија.
<?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 архивата веќе има експлицитна носечка ознака - Вчитува која било phar архива со носечка ознака