2024 日本 PHP 研討會

PharData::convertToData

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

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

說明

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

此方法用於將非可執行的 tar 或 zip 封存檔轉換為另一種非可執行的格式。

如果未指定任何更改,此方法會擲出 BadMethodCallException 例外。此方法應用於將 tar 封存檔轉換為 zip 格式,反之亦然。雖然可以使用此方法簡單地更改 tar 封存檔的壓縮方式,但為了邏輯一致性,最好使用 PharData::compress() 方法。

如果成功,該方法會在磁碟上建立新的封存檔,並返回一個 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 一個 PharData::convertToData() 的範例

使用 PharData::convertToData()

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

另請參閱

新增註記

使用者貢獻的註記

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