PharData::convertToExecutable
実行可能でない tar/zip アーカイブを実行可能な phar アーカイブ形式に変換する
説明
public Pharnull PharData::convertToExecutable(intnull $format
= null
, intnull $compression
= null
, stringnull $extension
= null
)
注意:
このメソッドは、php.ini の phar.readonly
が 0
でないと Phar
オブジェクトで動作しません。それ以外の場合は
PharException がスローされます。
このメソッドは、実行可能でない tar あるいは zip アーカイブを実行可能な
phar 形式に変換します。実行可能なファイル形式 3 種類 (phar, tar あるいは zip)
のどれでも使用することができ、アーカイブ全体の圧縮も行うことができます。
何も変更しなかった場合、このメソッドは
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 PharData::convertToExecutable の例
PharData::convertToExecutable() の使用例です。
<?php
try {
$tarphar = new PharData('myphar.tar');
// phar ファイル形式に変換します
// myphar.tar は削除 *されない* ことに注意しましょう
$phar = $tarphar->convertToExecutable(Phar::PHAR); // creates myphar.phar
$phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
// myphar.phar.tgz を作成します
$compressed = $tarphar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
// ここでエラー処理をします
}
?>
参考
- Phar::convertToExecutable
- Phar::convertToData
- PharData::convertToData