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

# Phar::convertToData

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

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

### 説明

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

このメソッドは、実行可能な phar アーカイブを tar あるいは zip ファイルに変換します。 tar あるいは zip を実行可能ではない形式にするため、 phar スタブおよび phar エイリアスファイルはアーカイブから削除されます。

何も変更しなかった場合、もしアーカイブが phar 形式ならこのメソッドは BadMethodCallException をスローします。 tar あるいは zip 形式のアーカイブの場合は、 このメソッドはアーカイブを実行可能でない形式に変換します。

成功した場合は、このメソッドはディスク上に新しいアーカイブを作成して 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 | `format`、 `compression`、 `extension` は、nullable になりました。

### 例

例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) {
        // ここでエラー処理をします
    }
    ?>

### 参考

- Phar::convertToExecutable() - phar アーカイブを実行可能な別の phar アーカイブ形式に変換する
- PharData::convertToExecutable() - 実行可能でない tar/zip アーカイブを実行可能な phar アーカイブ形式に変換する
- PharData::convertToData() - phar アーカイブを実行可能でない tar あるいは zip ファイルに変換する

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open