Phar::startBuffering

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

Phar :: startBuffering - 버퍼링 Phar 쓰기 작업을 시작하고 디스크의 Phar 개체를 수정하지 마십시오.


설명

public Phar::startBuffering(): void

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

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

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


매개변수

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


반환 값

값이 반환되지 않습니다.


Examples

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

                  
<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
} catch (Exception $e) {
    echo 'Could not create phar:', $e;
}
echo 'The new phar has ' . $p->count() . " entries\n";
$p->startBuffering();
$p['file.txt'] = 'hi';
$p['file2.txt'] = 'there';
$p['file2.txt']->setCompressedGZ();
$p['file3.txt'] = 'babyface';
$p['file3.txt']->setMetadata(42);
$p->setStub("<?php
function __autoload($class)
{
    include 'phar://myphar.phar/' . str_replace('_', '/', $class) . '.php';
}
Phar::mapPhar('myphar.phar');
include 'phar://myphar.phar/startup.php';
__HALT_COMPILER();");
$p->stopBuffering();
?>
                  
                

기타

  • Phar::stopBuffering() - Phar 아카이브에 대한 쓰기 요청 버퍼링을 중지하고 변경 사항을 디스크에 저장
  • Phar::isBuffering() - Phar 쓰기 작업이 버퍼링되고 있는지 또는 디스크에 직접 플러시되는지 확인하는 데 사용됩니다.