Останавливает буферизацию и записывает все изменения на диск

# Phar::stopBuffering

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

Phar::stopBuffering — Останавливает буферизацию и записывает все изменения на диск

### Описание

public function Phar::stopBuffering(): void

Метод Phar::stopBuffering() используется совместно с методом Phar::startBuffering(). Phar::startBuffering() может дать значительный прирост производительности при создании, либо модификации phar-архива с большим количеством файлов. Обычно, когда добавляется новый файл, либо изменяется существующий, запускается операция пересоздания phar-архива. С включённой буферизацией архив будет пересоздан один раз в самом конце внесения изменений.

Эта концепция работает аналогично транзакции в базе данных, что позволяет сделать вне необходимые изменения и применить их одновременно, в рамках одной операции. Такое поведение обеспечивает пара методов Phar::startBuffering()/Phar::stopBuffering().

Настройки буферизации индивидуальны для каждого архива. Включённая буферизация для `foo.phar` никак не влияет на режим работы с `bar.phar`.

### Список параметров

Сигнатура функции не содержит параметров.

### Возвращаемые значения

Функция не возвращает значения после выполнения.

### Ошибки

В случае проблем с записью на диск будет выброшено исключение PharException.

### Примеры

Пример #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::isBuffering() - Проверить, будут ли операции с Phar-архивом буферизованы или записаны напрямую на диск

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open