Phar
PHP Manual

Phar::startBuffering

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

Phar::startBufferingIniciar las operaciones de escritura en buffer de Phar, no modifica el objeto Phar del disco

Descripción

public void Phar::startBuffering ( void )

Aunque es técnicamente innecesario, el método Phar::startBuffering() puede proporcionar un aumento significativo de rendimiento al crear o modificar un archivo Phar con un gran número de ficheros. Normalmente, cada vez que un fichero dentro de un archivo Phar es creado o modificado de alguna manera, el archivo Phar entero se re-creará con los cambios. De esta forma, el archivo estará actualizado con la actividad realizada sobre él.

Sin embargo, esto puede ser innecesario al crear simplemente un nuevo archivo Phar, que tendría más sentido escribir el archivo entero de una vez. De forma similar, a menudo es necesario realizar una serie de cambios y asegurarse de que todos son posibles antes de hacer cualquier cambio en disco, similar al concepto de transacciones en bases de datos relacionales. La pareja de métodos Phar::startBuffering()/Phar::stopBuffering() está prevista para este propósito.

La escritura en buffer de Phar es por archivo, el almacenamiento activo en buffer del archivo Phar foo.phar no afecta a los cambios hechos al archivo Phar bar.phar.

Valores devueltos

No devuelve ningún valor.

Ejemplos

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

<?php
// asegurarse de que no existe
@unlink('nuevo_phar.phar');
try {
    
$p = new Phar(dirname(__FILE__) . '/nuevo_phar.phar'0'nuevo_phar.phar');
} catch (
Exception $e) {
    echo 
'No se pudo crear el phar:'$e;
}
echo 
'El nuevo phar tiene ' $p->count() . " entradas\n";
$p->startBuffering();
$p['fichero.txt'] = 'hola';
$p['fichero2.txt'] = 'qué tal';
$p['fichero2.txt']->setCompressedGZ();
$p['fichero3.txt'] = 'cara de niño';
$p['fichero3.txt']->setMetadata(42);
$p->setStub("<?php
function __autoload(
$clase)
{
    include 'phar://miphar.phar/' . str_replace('_', '/', 
$clase) . '.php';
}
Phar::mapPhar('miphar.phar');
include 'phar://miphar.phar/inicio.php';
__HALT_COMPILER();"
);
$p->stopBuffering();
?>

Ver también


Phar
PHP Manual