Rechercher une fonction PHP

Phar::stopBuffering

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

Phar::stopBufferingArrête la mise en tampon des écritures Phar et provoque l'écriture que le disque

Description

public Phar::stopBuffering ( void ) : void

Phar::stopBuffering() est utilisée en conjonction avec la méthode Phar::startBuffering(). Phar::startBuffering() peut fournir un gain de performance lors de la création ou la modification d'une archive Phar avec un grand nombre de fichiers. D'ordinaire, chaque fois qu'un fichier au sein de l'archive Phar est créé ou modifié, l'archive Phar entière et recréée en incluant les changements. De cette manière, l'archive sera toujours à jour vis à vis des opération qui y sont appliquées.

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.

Retour à la première page de Manuel PHP  Table des matières Haut

Valeurs de retour

Aucune valeur n'est retournée.

Retour à la première page de Manuel PHP  Table des matières Haut

Erreurs / Exceptions

Une exception PharException est levée si des problèmes sont rencontrés lors de l'écriture des changements sur le disque.

Retour à la première page de Manuel PHP  Table des matières Haut

Exemples

Exemple #1 Un exemple Phar::stopBuffering()

<?php
$p 
= new Phar(dirname(__FILE__) . '/nouveau.phar'0'nouveau.phar');
$p['fichier1.txt'] = 'salut';
$p->startBuffering();
var_dump($p->getStub());
$p->setStub("<?php
function __autoload(\$class)
{
    include 'phar://nouveau.phar/' . str_replace('_', '/', \$class) . '.php';
}
Phar::mapPhar('nouveau.phar');
include 'phar://nouveau.phar/demarrage.php';
__HALT_COMPILER();"
);
$p->stopBuffering();
var_dump($p->getStub());
?>

L'exemple ci-dessus va afficher :

string(24) "<?php __HALT_COMPILER();"
string(195) "<?php
function __autoload($class)
{
    include 'phar://' . str_replace('_', '/', $class);
}
Phar::mapPhar('nouveau.phar');
include 'phar://nouveau.phar/demarrage.php';
__HALT_COMPILER();"

Retour à la première page de Manuel PHP  Table des matières Haut

Voir aussi

  • Phar::startBuffering() - Démarre la mise en tampon de écritures Phar, ne modifie pas l'objet Phar sur 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

Rechercher une fonction PHP

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-phar.stopbuffering.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut