CakeFest 2024: The Official CakePHP Conference

Phar::createDefaultStub

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

Phar::createDefaultStubphar ファイルフォーマット用のスタブを作成する

説明

final public static Phar::createDefaultStub(?string $index = null, ?string $webIndex = null): string

このメソッドは、phar ファイル形式のスタブを作成するためのもので、 tar 形式や zip 形式の phar アーカイブでは使用しません。

PHP でかかれた起動ローダー (スタブ) を含む Phar アーカイブを PHP から実行するには、次のようにそれをインクルードするか、

<?php
include 'myphar.phar';
?>
あるいは単に実行します。
php myphar.phar

このメソッドは、phar アーカイブの起動時に実行するスタブ用のメソッドを作成します。 さらに、phar アーカイブをコマンドラインやウェブサーバーから実行する際には別のファイルを指定することもできます。 ローダースタブは Phar::interceptFileFuncs() もコールでき、PHP のアプリケーションからファイルシステムを簡単に扱えるようになります。 phar 拡張モジュールが存在しない場合は、 ローダースタブが phar アーカイブの内容を一時ディレクトリに展開し、 そのファイルを操作します。 シャットダウン関数が、この一時ファイル群を削除します。

パラメータ

index

コマンドラインからアクセスする場合に、 実行する phar アーカイブ内の相対パス。

webIndex

Webブラウザからアクセスする場合に、 実行する phar アーカイブ内の相対パス。

戻り値

独自の起動ローダー (スタブ) を文字列で返します。 これを用いて作成した Phar アーカイブは、 Phar 拡張モジュールが有効になっていない環境でも実行することができます。

エラー / 例外

パラメータの長さが 400 バイトをこえる場合に UnexpectedValueException をスローします。

変更履歴

バージョン 説明
8.0.0 indexwebIndex は、nullable になりました。

例1 Phar::createDefaultStub() の例

<?php
try {
$phar = new Phar('myphar.phar');
$phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
} catch (
Exception $e) {
// エラー処理
}
?>

参考

  • Phar::setStub() - Phar アーカイブの PHP ローダ (あるいは起動スタブ) を設定する
  • Phar::getStub() - Phar アーカイブの PHP ローダーあるいは起動スタブを返す

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top