PharData::convertToData

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

PharData::convertToDataphar アーカイブを実行可能でない tar あるいは zip ファイルに変換する

説明

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

このメソッドは、実行可能でない tar あるいは zip アーカイブを別の実行可能でない形式に変換します。

何も変更しなかった場合、このメソッドは BadMethodCallException をスローします。 このメソッドは、tar アーカイブを zip 形式に変換するか あるいはその逆の変換をする場合に使用するものです。 このメソッドで単に tar アーカイブの圧縮方法だけを変更することもできますが、 その場合は PharData::compress() を使うことをおすすめします。

成功した場合は、このメソッドはディスク上に新しいアーカイブを作成して PharData オブジェクトを返します。 古いアーカイブは削除されずディスク上に残るので、 処理を終えたら手動で削除する必要があります。

パラメータ

format

これは Phar::TAR あるいは Phar::ZIP のいずれかとなります。 null を指定すると、現在のファイル形式をそのまま保持します。

compression

アーカイブ全体の圧縮を行わない場合は Phar::NONE、 zlib による圧縮の場合は Phar::GZ、そして bzip による圧縮の場合は Phar::BZ2 のいずれかを指定します。

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 は、nullable になりました。

例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::TARPhar::BZ2'.tbz');
    
// myphar.phar.tgz を作成します
    
$phar $tarphar->convertToData(Phar::PHAR); // throws exception
} catch (Exception $e) {
    
// ここでエラー処理をします
}
?>

参考

関連キーワード:  アーカイブ, tar, phar, 実行, 変換, PharData, Phar, 形式, 圧縮, メソッド