downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

Phar::startBuffering> <Phar::setSignatureAlgorithm
[edit] Last updated: Wed, 19 Jun 2013

view this page in

Phar::setStub

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

Phar::setStubEstablecer el cargador de PHP o la rutina de interoperabilidad de un archivo Phar

Descripción

bool Phar::setStub ( string $stub )

Nota:

Este método requiere que la opción de php.ini phar.readonly esté establecida a 0 para que trabaje con objetos Phar. De otra manera, se lanzará una excepción de tipo PharException.

Este método se utiliza para añadir una rutina de interoperabilidad cargadora a un nuevo archivo Phar, o reemlazar la rutina de interoperabilidad de un archivo Phar existente.

La rutina de interoperabilidad cargadora de un archivo Phar se utiliza siempre que un archivo esté incluido directamente como en este ejemplo:

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

Al cargador no se accede cuando se incluye un archivo a través de la envoltura de flujos phar como aquí:

<?php
include 'phar://miphar.phar/un_fichero.php';
?>

Parámetros

stub

Una cadena o un gestor de flujo abierto para usarlo como la rutina de interoperabilidad ejecutable de este archivo phar.

Valores devueltos

Devuelve TRUE en caso de éxito o FALSE en caso de error.

Errores/Excepciones

Se lanza una excepción de tipo UnexpectedValueException si phar.readonly está habilitado en php.ini. Se lanza una excepción de tipo PharException si se encuentra cualquier problema al volcar los cambios al disco.

Ejemplos

Ejemplo #1 Un ejemplo de Phar::setStub()

<?php
try {
    
$p = new Phar(dirname(__FILE__) . '/nuevo_phar.phar'0'nuevo_phar.phar');
    
$p['a.php'] = '<?php var_dump("Hola");';
    
$p->setStub('<?php var_dump("Primero"); Phar::mapPhar("nuevo_phar.phar"); __HALT_COMPILER(); ?>');
    include 
'phar://nuevo_phar.phar/a.php';
    
var_dump($p->getStub());
    
$p['b.php'] = '<?php var_dump("Mundo");';
    
$p->setStub('<?php var_dump("Segundo"); Phar::mapPhar("nuevo_phar.phar"); __HALT_COMPILER(); ?>');
    include 
'phar://nuevo_phar.phar/b.php';
    
var_dump($p->getStub());
} catch (
Exception $e) {
    echo 
'Las operaciones de escritura sobre nuevo_phar.phar fallaron: '$e;
}
?>

El resultado del ejemplo sería:

string(4) "Hola"
string(84) "<?php var_dump("Primero"); Phar::mapPhar("nuevo_phar.phar"); __HALT_COMPILER(); ?>"
string(5) "Mundo"
string(84) "<?php var_dump("Segundo"); Phar::mapPhar("nuevo_phar.phar"); __HALT_COMPILER(); ?>"

Ver también

  • Phar::getStub() - Devolver el cargador de PHP o la rutina de interoperabilidad de un archivo Phar
  • Phar::createDefaultStub() - Crear una rutina de interoperabilidad específica del formato de fichero phar



add a note add a note User Contributed Notes Phar::setStub - [2 notes]
up
0
Olivier Laviale
1 year ago
If your stub has a namespace, it is used for each include that doesn't define one.
up
0
jaimz22 at gmail dot com
5 years ago
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.

 
show source | credits | sitemap | contact | advertising | mirror sites