Phar::stopBuffering

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

Phar::stopBufferingInterrompe o buffer de solicitações de gravação no arquivo Phar e salva as alterações no disco

Descrição

public Phar::stopBuffering(): void

Phar::stopBuffering() é usado em conjunto com o método Phar::startBuffering(). Phar::startBuffering() pode proporcionar um aumento significativo de desempenho ao criar ou modificar um arquivo Phar com um grande número de arquivos. Normalmente, sempre que um arquivo dentro de um arquivo Phar é criado ou modificado de alguma forma, todo o arquivo Phar será recriado com as alterações. Dessa forma, o arquivo estará atualizado com a atividade realizada nele.

No entanto, isso pode ser desnecessário ao simplesmente criar um novo arquivo Phar, quando faria mais sentido gravar o arquivo inteiro de uma só vez. Da mesma forma, muitas vezes é necessário fazer uma série de alterações e garantir que todas elas sejam possíveis antes de fazer qualquer alteração no disco, semelhante ao conceito de transações de banco de dados relacional. O par de métodos Phar::startBuffering()/Phar::stopBuffering() é fornecido para esse propósito.

O buffer de gravação Phar é por arquivo, o buffer ativo para o arquivo Phar foo.phar não afeta as alterações no arquivo Phar bar.phar.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

PharException é lançada se algum problema for encontrado ao liberar as alterações no disco.

Exemplos

Exemplo #1 Um exemplo de Phar::stopBuffering()

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

O exemplo acima produzirá:

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

Veja Também

  • Phar::startBuffering() - Inicia o buffer das operações de gravação Phar, não modifica o objeto Phar no disco
  • Phar::isBuffering() - Usado para determinar se as operações de gravação Phar estão sendo armazenadas em buffer ou estão sendo liberadas diretamente no disco

adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top