PHP8 Phar::mount

2024-02-21 14:39 更新

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

Phar::mount — 將外部路徑或文件掛載到 phar 存檔中的虛擬位置

說(shuō)明

final public static Phar::mount(string $pharPath, string $externalPath): void

與 unix 文件系統(tǒng)的概念非常相似,即將外部設(shè)備掛載到 目錄樹(shù),Phar::mount() 允許引用外部文件 和目錄,就好像它們?cè)诖鏅n中一樣。這允許強(qiáng)大的 抽象,例如引用外部配置文件,就好像它們是 在存檔中。

參數(shù) 

pharPath

phar 存檔中要用作掛載路徑位置的內(nèi)部路徑。 這必須是 phar 存檔中的相對(duì)路徑,并且不能已經(jīng)存在。

externalPath

要在 phar 存檔中掛載的外部文件或目錄的路徑或 URL

返回值 

沒(méi)有回報(bào)。失敗時(shí)引發(fā) PharException。

錯(cuò)誤/異常 

如果掛載路徑出現(xiàn)任何問(wèn)題,則引發(fā) PharException。

示例 

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

以下示例演示如何訪(fǎng)問(wèn)外部配置文件,就好像它是 PHAR 存檔中的路徑。

首先,phar 存檔中的代碼:

<?php
$configuration = simplexml_load_string(file_get_contents(
    Phar::running(false) . '/config.xml'));
?>

接下來(lái)是用于掛載配置文件的外部代碼:

<?php
// first set up the association between the abstract config.xml
// and the actual one on disk
Phar::mount('phar://config.xml', '/home/example/config.xml');
// now run the application
include '/path/to/archive.phar';
?>

另一種方法是將掛載代碼放在 phar 存檔的存根中。 下面是設(shè)置默認(rèn)值的示例 配置文件(如果未指定用戶(hù)配置):

<?php
// first set up the association between the abstract config.xml
// and the actual one on disk
if (defined('EXTERNAL_CONFIG')) {
    Phar::mount('config.xml', EXTERNAL_CONFIG);
    if (file_exists(__DIR__ . '/extra_config.xml')) {
        Phar::mount('extra.xml', __DIR__ . '/extra_config.xml');
    }
} else {
    Phar::mount('config.xml', 'phar://' . __FILE__ . '/default_config.xml');
    Phar::mount('extra.xml', 'phar://' . __FILE__ . '/default_extra.xml');
}
// now run the application
include 'phar://' . __FILE__ . '/index.php';
__HALT_COMPILER();
?>

...以及外部加載此 PHAR 存檔的代碼:

<?php
define('EXTERNAL_CONFIG', '/home/example/config.xml');
// now run the application
include '/path/to/archive.phar';
?>


以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)