Phar::startBuffering
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)
Phar::startBuffering — Inicia el almacenamiento en búfer de escrituras Phar, sin modificar el objeto Phar en el disco
Descripción
public Phar::startBuffering():
void
Aunque esto pueda parecer innecesario durante la creación de un archivo Phar simple,
adquiere sentido al escribir el archivo Phar completo de una sola vez.
Asimismo, es frecuente necesitar realizar una serie de cambios y asegurarse
de que todos son posibles antes de escribir en el disco, de manera similar a las transacciones
de las bases de datos relacionales. Las funciones
Phar::startBuffering()/Phar::stopBuffering() están disponibles
con este propósito.
El almacenamiento en búfer Phar se realiza por archivo, el búfer activo para el archivo Phar
foo.phar
no afecta a los cambios realizados en el archivo Phar
bar.phar
.
Parámetros
Esta función no contiene ningún parámetro.
Valores devueltos
No se retorna ningún valor.
Ejemplos
Ejemplo #1 Un ejemplo con Phar::startBuffering()
<?php
// se asegura de que el phar no exista ya
@unlink('nouveau.phar');
try {
$p = new Phar(dirname(__FILE__) . '/nouveau.phar', 0, 'nouveau.phar');
} catch (Exception $e) {
echo 'No puede crear el phar:', $e;
}
echo 'El nuevo phar tiene ' . $p->count() . " entradas\n";
$p->startBuffering();
$p['fichier.txt'] = 'salut';
$p['fichier2.txt'] = 'jolie';
$p['fichier2.txt']->setCompressedGZ();
$p['fichier3.txt'] = 'môme';
$p['fichier3.txt']->setMetadata(42);
$p->setStub("<?php
function __autoload($class)
{
include 'phar://monphar.phar/' . str_replace('_', '/', $class) . '.php';
}
Phar::mapPhar('monphar.phar');
include 'phar://monphar.phar/demarrage.php';
__HALT_COMPILER();");
$p->stopBuffering();
?>
Ver también
- Phar::stopBuffering() - Detiene el almacenamiento en búfer de las escrituras Phar y provoca la escritura en el disco
- Phar::isBuffering() - Determina si las operaciones de escritura de Phar están en búfer o se escriben directamente en el disco