Phar::stopBuffering

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

Phar::stopBuffering — Phar 아카이브에 대한 쓰기 요청 버퍼링을 중지하고 변경 사항을 디스크에 저장합니다.


설명

public Phar::stopBuffering(): void

Phar::stopBuffering()Phar::startBuffering() 메서드와 함께 사용됩니다. Phar::startBuffering()은 많은 수의 파일이 있는 Phar 아카이브를 생성하거나 수정할 때 상당한 성능 향상을 제공할 수 있습니다. 일반적으로 Phar 아카이브 내의 파일이 어떤 식으로든 생성되거나 수정될 때마다 전체 Phar 아카이브가 변경 사항과 함께 다시 생성됩니다. 이러한 방식으로 아카이브는 수행된 활동으로 최신 상태가 됩니다.

그러나 전체 아카이브를 한 번에 작성하는 것이 더 합리적일 때 단순히 새 Phar 아카이브를 생성할 때 이것은 불필요할 수 있습니다. 유사하게, 트랜잭션의 관계형 데이터베이스 개념과 유사하게 디스크에서 변경을 수행하기 전에 일련의 변경을 수행하고 모든 변경이 가능한지 확인해야 하는 경우가 많습니다. 이를 위해 Phar::startBuffering()/Phar::stopBuffering() 메서드 쌍이 제공됩니다.

Phar 쓰기 버퍼링은 아카이브별로 이루어지며 foo.phar Phar 아카이브에 대해 활성화된 버퍼링은 bar.phar Phar 아카이브의 변경 사항에 영향을 미치지 않습니다.


매개변수

이 함수에는 매개변수가 없습니다.


반환 값

값이 반환되지 않습니다.


오류/예외

디스크에 변경 사항을 플러시하는 데 문제가 발생하면 PharException이 발생합니다.


Examples

예제 #1 Phar::stopBuffering() 예제

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

위의 예는 다음을 출력합니다.

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

기타

  • Phar::startBuffering() - Phar 쓰기 작업 버퍼링을 시작하고 디스크의 Phar 개체를 수정하지 마십시오.
  • Phar::isBuffering() - Phar 쓰기 작업이 버퍼링되고 있는지 또는 디스크에 직접 플러시되는지 확인하는 데 사용됩니다.