Phar->getStub
(no version information, might be only in CVS)
Phar->getStub -- Phar アーカイブの PHP ローダーあるいは起動スタブを返す
説明
string
Phar->getStub ( void )
Phar アーカイブが tar や zip のようなその他のアーカイブフォーマットと違う点のひとつに、
アーカイブを展開せずに直接中身を実行できるような仕組みを提供しており、
アプリケーションやライブラリを配布することを考えて設計されているということがあります。
これを実現するために、Phar アーカイブは起動用ローダーあるいは
スタブ を含んでいます。
これは PHP で書かれており、任意の動作を行えます。
警告 |
スタブの最後は、必ず
__HALT_COMPILER(); で終わらなければなりません。
それ以外は有効な Phar アーカイブとして認められません。
|
返り値
現在の Phar アーカイブの起動用ローダー (スタブ)
の内容を文字列で返します。
エラー / 例外
スタブを Phar アーカイブから読み込めない場合に
RuntimeException をスローします。
例
例 1. Phar->getStub() の例
$p = new Phar('/path/to/my.phar', 0, 'my.phar'); echo $p->getStub(); echo "==NEXT==\n"; $p->setStub("<?php function __autoload($class) { include 'phar://' . str_replace('_', '/', $class); } Phar::mapPhar('myphar.phar'); include 'phar://myphar.phar/startup.php'; __HALT_COMPILER();"); echo $p->getStub();
|
上の例の出力は以下となります。 <?php __HALT_COMPILER();
==NEXT==
<?php
function __autoload($class)
{
include 'phar://' . str_replace('_', '/', $class);
}
Phar::mapPhar('myphar.phar');
include 'phar://myphar.phar/startup.php';
__HALT_COMPILER(); |
|