Phar::startBuffering
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)
Phar::startBuffering — Iniciar las operaciones de escritura en buffer de Phar, no modifica el objeto Phar del disco
Descripción
public Phar::startBuffering():
void
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::stopBuffering() - Detener las peticiones de escritura en buffer del archivo Phar, y guardar los cambios en disco
- Phar::isBuffering() - Determinar si las operaciones de escritura de Phar está siendo almacenadas en buffer, o están siendo volcadas directamente al disco