Phar ファイルのスタブ
Phar のスタブは、単純な PHP ファイルです。必要最小限のスタブは、次のようになります。
<?php __HALT_COMPILER();
スタブには、少なくとも __HALT_COMPILER();
トークンが必要です。
典型的なスタブは、次のように読み込み機能を含んでいます。
<?php
Phar::mapPhar();
include 'phar://myphar.phar/index.php';
__HALT_COMPILER();
Phar スタブの内容には特に制限はありません。唯一の制約は、最後が
__HALT_COMPILER();
でなければならないということです。
PHP の終了タグ
は含めても含めなくてもかまいません。
しかし、?>
;
と終了タグ
の間にはひとつ以上の空白を含めてはいけません。
もしそうしてしまうと、phar 拡張モジュールは
その Phar アーカイブのマニフェストを処理できなくなります。
?>
tar 形式あるいは zip 形式の phar アーカイブでは、スタブは
.phar/stub.php
というファイルに保存されます。
phar 形式の phar アーカイブのデフォルトのスタブには
約 7k のコードが含まれており、このコードが phar の展開と実行を行います。
詳細は Phar::createDefaultStub() を参照ください。
tar 形式あるいは zip 形式の phar アーカイブにおける
phar エイリアスの保存先は
.phar/alias.txt
で、これはプレーンテキスト形式となります。
+add a note
User Contributed Notes 1 note
Frank Li ¶
2 years ago
> but there can be no more than 1 space between the ; and the close tag
there must be **exactly** 1 space, or "\n".
below is how php trims the ending tag.
> seek_for("__HALT_COMPILER();");
> read_3_into(buffer);
> if ((*buffer == ' ' || *buffer == '\n') && *(buffer + 1) == '?' && *(buffer + 2) == '>') {
> do_things.
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google