array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'de', ), 'this' => array ( 0 => 'phar.setstub.php', 1 => 'Phar::setStub', 2 => 'Used to set the PHP loader or bootstrap stub of a Phar archive', ), 'up' => array ( 0 => 'class.phar.php', 1 => 'Phar', ), 'prev' => array ( 0 => 'phar.setsignaturealgorithm.php', 1 => 'Phar::setSignatureAlgorithm', ), 'next' => array ( 0 => 'phar.startbuffering.php', 1 => 'Phar::startBuffering', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'en', 'path' => 'reference/phar/Phar/setStub.xml', ), 'history' => array ( ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); contributors($setup); ?>
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)
Phar::setStub — Used to set the PHP loader or bootstrap stub of a Phar archive
Hinweis:
Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung
phar.readonlyauf 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
include 'myphar.phar';
?>php 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';
?>
stubA string or an open stream handle to use as the executable stub for this phar archive.
lengthstub in bytes.
Passing the length argument with a Ressource in
the first argument is DEPRECATED as of PHP 8.3.0.
Use $phar->setStub(stream_get_contents($resource)) instead.
Gibt immer true zurück.
UnexpectedValueException is thrown if phar.readonly is enabled in php.ini. PharException is thrown if any problems are encountered flushing changes to disk.
| Version | Beschreibung |
|---|---|
| 8.4.0 |
The return type is true now; previously, it was bool.
|
| 8.3.0 |
Calling Phar::setStub() with a
resource and a length
is now deprecated. Such calls should be replaced by:
$phar->setStub(stream_get_contents($resource));
|
Beispiel #1 A Phar::setStub() 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;
}
?>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(); ?>"