PHP Portal » PHP Handbuch » Phar::setStub

Werbung

Phar::setStub


(PHP >= 5.3.0, PECL phar >= 1.0.0)

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

Beschreibung

bool Phar::setStub ( string $stub )

Hinweis: Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

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 Code
1
include 'myphar.phar';

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

PHP Code
1
include 'phar://myphar.phar/somefile.php';

Parameter-Liste

stub

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

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.

Fehler/Exceptions

UnexpectedValueException is thrown if phar.readonly is enabled in php.ini. PharException is thrown if any problems are encountered flushing changes to disk.

Beispiele

Beispiel #1 A Phar::setStub() example

PHP Code
1
2
3
4
5
6
7
8
9
10
11
12
13
try { $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar'); $p['a.php'] = ' var_dump("Hello");'; $p->setStub(' var_dump("First"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); '); include 'phar://brandnewphar.phar/a.php'; var_dump($p->getStub()); $p['b.php'] = ' var_dump("World");'; $p->setStub(' 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; }

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

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

Siehe auch