PHP.mk документација

Phar::setStub

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

phar.setstub.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека phar.setstub.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
Phar::setStub

Референца за `phar.setstub.php` со подобрена типографија и навигација.

phar.setstub.php

Phar::setStub

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

Phar::setStubUsed to set the PHP loader or bootstrap stub of a Phar archive

= NULL

public Phar::setStub(resource|string $stub, int $length = -1): bool

Забелешка:

Се користи за поставување на PHP лоадерот или bootstrap stub на Phar архивата на стандарден лоадер php.ini setting phar.readonly Овој метод бара 0 да биде поставено на за да работи за Phar PharException ќе биде фрлена.

This method is used to add a PHP bootstrap loader stub to a new Phar archive, or to replace the loader stub in an existing Phar archive.

The loader stub for a Phar archive is used whenever an archive is included directly as in this example:

<?php
include 'myphar.phar';
?>

The loader is not accessed when including a file through the phar stream wrapper like so:

<?php
include 'phar://myphar.phar/somefile.php';
?>

Параметри

stub

A string or an open stream handle to use as the executable stub for this phar archive.

length

Вратени вредности

Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.

Errors/Exceptions

UnexpectedValueException се фрла ако phar.readonly Релативна патека во рамките на phar архивата што треба да се изврши ако се пристапи преку веб прелистувач PharException е овозможено во php.ini.

Дневник на промени

Верзија = NULL
8.3.0 Повикување Phar::createDefaultStub() Оваа функција е еквивалентна на повикување resource и length сега е застарен. Таквите повици треба да се заменат со: $phar->setStub(stream_get_contents($resource));

Примери

ако е овозможен колекторот за отпадоци, Phar::createDefaultStub() example

<?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;
}
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

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

Види Исто така

Белешки од корисници 3 белешки

Scott Dutton
пред 8 години
Its not clear in the docs but __HALT_COMPILER() is required in the stub.
jaimz22 at gmail dot com
пред 18 години
One thing I had alot of problems with, is that i can't set the stub unless I put the whole operation inside of a try/catch block!

If i remove the try/catch block it will error our and not write the stub with the content i want it to have.
Olivier Laviale
пред 14 години
If your stub has a namespace, it is used for each include that doesn't define one.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.