Php/docs/phar.isbuffering

提供:Dev Guides
< Php
移動先:案内検索

Phar::isBuffering

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

Phar::isBufferingPhar の書き込み操作がバッファリングされるか、あるいは直接ディスクに書き込まれるかを調べる


説明

public Phar::isBuffering ( ) : bool

このメソッドを使用すると、その Phar が変更を即時にディスクに書き込むのか それとも Phar::stopBuffering() をコールしないと変更が保存されないのかがわかります。

Phar の書き込みバッファリングはアーカイブ単位で処理されます。 Phar アーカイブ foo.phar でバッファリングが有効であったとしても、それは Phar アーカイブ bar.phar の変更には影響しません。


返り値

書込み操作がバッファリングされる場合に true、それ以外の場合に false を返します。


例1 Phar::isBuffering() の例


<?php$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');$p2 = new Phar('existingphar.phar');$p['file1.txt'] = 'hi';var_dump($p->isBuffering());var_dump($p2->isBuffering());?>=2=<?php$p->startBuffering();var_dump($p->isBuffering());var_dump($p2->isBuffering());$p->stopBuffering();?>=3=<?phpvar_dump($p->isBuffering());var_dump($p2->isBuffering());?>

上の例の出力は以下となります。


bool(false)
bool(false)
=2=
bool(true)
bool(false)
=3=
bool(false)
bool(false)

参考

  • Phar::startBuffering() - Phar の書き込み操作のバッファリングを開始するが、ディスク上の Phar オブジェクトは変更しない
  • Phar::stopBuffering() - Phar アーカイブへの書き込みリクエストのバッファリングを終了し、変更内容をディスクに書き込む