<em id="dtpgh"></em>
  • <dd id="dtpgh"><noscript id="dtpgh"></noscript></dd>
  • PHP8 Phar::startBuffering

    2024-02-21 14:40 更新

    (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 寫入緩沖是按存檔進行的,Phar 存檔的緩沖活動不會影響更改 到 Phar 檔案。foo.pharbar.phar

    參數 

    此函數沒有參數。

    返回值 

    沒有返回值。

    示例 

    示例 #1 A Phar::startBuffering() example

    <?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 寫入操作是被緩沖,還是直接刷新到磁盤


    以上內容是否對您有幫助:
    在線筆記
    App下載
    App下載

    掃描二維碼

    下載編程獅App

    公眾號
    微信公眾號

    編程獅公眾號

    9久久久精品视频免费观看_久久99这里只有精品_91热久久免费频精品99欧美_黄色a一级