Phar::startBuffering
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)
Phar::startBuffering — Démarre la mise en tampon d'écritures Phar, ne modifie pas l'objet Phar sur le disque
Description
public Phar::startBuffering(): void
Alors que ceci peut paraître inutile lors de la création d'un archive Phar simple,
ça prend tout son sens lors de l'écriture en une fois de l'archive Phar entière.
De même, il est souvent nécessaire de faire une série de changements et de s'assurer
qu'ils sont tous possibles avant d'écrire sur le disque, un peu comme les transactions
des base de données relationnelles. Les fonctions
Phar::startBuffering()/Phar::stopBuffering() sont disponibles
dans ce but.
La mise en tampon Phar s'effectue par archive, le tampon actif pour l'archive Phar
foo.phar
n'affecte pas les changements faits à l'archive Phar
bar.phar
.
Liste de paramètres
Cette fonction ne contient aucun paramètre.
Valeurs de retour
Aucune valeur n'est retournée.
Exemples
Exemple #1 Un exemple avec Phar::startBuffering()
<?php
// on s'assure que le phar n'existe pas déjà
@unlink('nouveau.phar');
try {
$p = new Phar(dirname(__FILE__) . '/nouveau.phar', 0, 'nouveau.phar');
} catch (Exception $e) {
echo 'Ne peut pas créer le phar:', $e;
}
echo 'Le nouveau phar a ' . $p->count() . " entrées\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();
?>
Voir aussi
- Phar::stopBuffering() - Arrête la mise en tampon des écritures Phar et provoque l'écriture que le disque
- Phar::isBuffering() - Détermine si les opérations d'écriture du Phar sont mises en tampons ou sont directement inscrites sur le disque