Phar::convertToExecutable
phar アーカイブを実行可能な別の phar アーカイブ形式に変換する
説明
public Pharnull Phar::convertToExecutable(intnull $format
= null
, intnull $compression
= null
, stringnull $extension
= null
)
注意:
このメソッドは、php.ini の phar.readonly
が 0
でないと Phar
オブジェクトで動作しません。それ以外の場合は
PharException がスローされます。
このメソッドは、phar アーカイブを別のファイル形式に変換します。
たとえば、zip 形式の実行可能な phar アーカイブあるいは
phar 形式の実行可能な phar アーカイブから
tar 形式の実行可能な phar アーカイブを作成することができます。
さらに、tar あるいは phar 形式のアーカイブについてはアーカイブ全体を圧縮することもできます。
何も変更しなかった場合、このメソッドは
BadMethodCallException をスローします。
成功した場合は、このメソッドはディスク上に新しいアーカイブを作成して
Phar オブジェクトを返します。
古いアーカイブは削除されずディスク上に残るので、
処理を終えたら手動で削除する必要があります。
パラメータ
-
format
-
これは Phar::PHAR
、Phar::TAR
あるいは Phar::ZIP
のいずれかとなります。
null
を指定すると、現在のファイル形式をそのまま保持します。
-
compression
-
アーカイブ全体の圧縮を行わない場合は Phar::NONE
、
zlib による圧縮の場合は Phar::GZ
、そして bzip による圧縮の場合は
Phar::BZ2
のいずれかを指定します。
-
extension
-
このパラメータは、変換後のアーカイブのデフォルトのファイル拡張子を変更します。
実行可能でない tar や zip アーカイブのファイル名としては
.phar
は使用できないことに注意しましょう。
phar 形式のアーカイブに変換する場合、デフォルトの拡張子は圧縮形式によって
.phar
、.phar.gz
あるいは .phar.bz2
のいずれかとなります。tar 形式のアーカイブの場合、デフォルトの拡張子は
.phar.tar
、.phar.tar.gz
および .phar.tar.bz2
です。zip 形式のアーカイブの場合、
デフォルトの拡張子は .phar.zip
となります。
戻り値
このメソッドは、成功した場合に Phar
オブジェクトを返します。失敗した場合は null
を返します。
エラー / 例外
圧縮ができない場合や無効な圧縮方式が指定された場合、あるいは
Phar::startBuffering でバッファリングしたまま
Phar::stopBuffering を実行していないアーカイブを処理しようとした場合に
BadMethodCallException をスローします。
また、書き込みサポートが無効な場合に
UnexpectedValueException、
phar 作成中に何らかの問題が発生した場合に
PharException をスローします。
例
例1 Phar::convertToExecutable の例
Phar::convertToExecutable() の使用例です。
<?php
try {
$tarphar = new Phar('myphar.phar.tar');
// phar ファイル形式に変換します
// myphar.phar.tar は削除 *されない* ことに注意しましょう
$phar = $tarphar->convertToExecutable(Phar::PHAR); // myphar.phar を作成します
$phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
// myphar.phar.tgz を作成します
$compressed = $phar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
// ここでエラー処理をします
}
?>
参考
- Phar::convertToData
- PharData::convertToExecutable
- PharData::convertToData