2024 年 PHP Conference Japan

Phar::convertToData

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

Phar::convertToData將 phar 封存轉換為不可執行的 tar 或 zip 檔案

說明

公開 Phar::convertToData(?int $format = null, ?int $compression = null, ?string $extension = null): ?PharData

此方法用於將可執行的 phar 封存檔轉換為 tar 或 zip 檔案。為了使 tar 或 zip 檔案無法執行,phar stub 和 phar alias 檔案會從新建立的封存檔中移除。

如果未指定任何變更,且封存檔為 phar 檔案格式,則此方法會擲出 BadMethodCallException 例外。對於 tar 或 zip 檔案格式的封存檔,此方法會將封存檔轉換為不可執行的封存檔。

如果成功,該方法會在磁碟上建立一個新的封存檔,並返回一個 PharData 物件。舊的封存檔不會從磁碟中移除,應該在處理完成後手動移除。

參數

format

這應該是 Phar::TARPhar::ZIP 其中之一。如果設為 null,則會保留現有的檔案格式。

compression

這應該是 Phar::NONE 表示不進行全封存壓縮,Phar::GZ 表示基於 zlib 的壓縮,以及 Phar::BZ2 表示基於 bzip 的壓縮。

extension

此參數用於覆蓋轉換後封存檔的預設檔案副檔名。請注意,對於不可執行的 tar 或 zip 封存檔,檔名中任何位置都不能使用 .phar

如果轉換為基於 tar 的 phar 封存檔,則預設副檔名為 .tar.tar.gz.tar.bz2,具體取決於指定的壓縮方式。對於基於 zip 的封存檔,預設副檔名為 .zip

回傳值

該方法在成功時返回一個 PharData 物件,在失敗時返回 null

錯誤/例外

當無法壓縮、指定了未知的壓縮方法、請求的封存檔正在使用 Phar::startBuffering() 進行緩衝但尚未使用 Phar::stopBuffering() 結束時,此方法會擲出 BadMethodCallException 例外;如果在 phar 建立過程中遇到任何問題,則會擲出 PharException 例外。

更新日誌

版本 說明
8.0.0 formatcompressionextension 現在可以為 null。

範例

範例 #1 Phar::convertToData() 範例

使用 Phar::convertToData()

<?php
try {
$tarphar = new Phar('myphar.phar.tar');
// 注意 myphar.phar.tar 並 *沒有* 被取消連結
// 將其轉換為不可執行的 tar 檔案格式
// 建立 myphar.tar
$tar = $tarphar->convertToData();
// 轉換為不可執行的 zip 格式,建立 myphar.zip
$zip = $tarphar->convertToData(Phar::ZIP);
// 建立 myphar.tbz
$tgz = $tarphar->convertToData(Phar::TAR, Phar::BZ2, '.tbz');
// 建立 myphar.phar.tgz
$phar = $tarphar->convertToData(Phar::PHAR); // 拋出例外
} catch (Exception $e) {
// 在此處處理錯誤
}
?>

另請參閱

新增註記

使用者貢獻的註記

此頁面沒有使用者貢獻的註記。
To Top