Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】Phar::webPhar()メソッドの使い方

webPharメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

webPharメソッドは、PharアーカイブをWebアプリケーションとして機能させるための設定を行うメソッドです。このメソッドを使用することで、単一のPharファイルを、Webサーバー上で複数のファイルやディレクトリを持つアプリケーションのように振る舞わせることが可能になります。

具体的には、Webサーバーからのリクエストに対して、Pharアーカイブ内部のどのファイルがアプリケーションのエントリーポイント、つまり最初に処理を開始するフロントコントローラとして動作するかを指定できます。これにより、ウェブサイトの全てのアクセスを一つのファイルで受け止め、内部で適切な処理に振り分ける、といった仕組みをPharアーカイブに組み込めます。

さらに、存在しないURLへのアクセスなど、指定されたファイルが見つからなかった場合(HTTP 404エラー)に、表示するカスタムエラーページや、その代わりの処理を設定することも可能です。例えば、「指定されたページが見つかりません」といったメッセージを表示する専用のファイルを設定できます。

この機能は、Webサーバー側で複雑なリライトルールを設定することなく、Pharアーカイブ自身が内部でURLのルーティングやエラー処理を制御するようになることを意味します。例えば、index.phpをフロントコントローラとし、存在しないパスへのアクセスを404.phpに転送するといった動作を、単一のPharファイルで実現できます。これにより、PHPで開発されたウェブアプリケーションを、一つの実行可能ファイルとして簡単に配布し、デプロイプロセスを大幅に簡素化したい場合に非常に有用です。引数には、これらのインデックスファイル名や404エラー時に表示するファイル名を指定できます。

構文(syntax)

1<?php
2
3// Pharオブジェクトのインスタンスを準備します。
4// ここでは、新しいPharアーカイブ 'my_application.phar' を作成する例を示します。
5$phar = new Phar('my_application.phar');
6
7// Phar::webPhar() メソッドを呼び出して、ウェブアプリケーション用のスタブコードを生成します。
8// 全ての引数はオプションです。PHP 8以降では名前付き引数を使用して、
9// 必要な引数のみを分かりやすく指定できます。
10$webPharStubCode = $phar->webPhar(
11    alias: 'myWebApp',    // ウェブアプリケーションのエイリアス
12    index: 'index.php'    // デフォルトのインデックスファイル
13);
14
15?>

引数(parameters)

?string $alias = null, ?string $index = null, ?string $fileNotFoundScript = null, ?array $mimeTypes = null, ?callable $rewrite = null

  • ?string $alias = null: Pharアーカイブにアクセスするためのエイリアス名(省略可能)。
  • ?string $index = null: Pharアーカイブのルートとなるインデックスファイル名(省略可能)。
  • ?string $fileNotFoundScript = null: ファイルが見つからなかった場合に実行するスクリプトのパス(省略可能)。
  • ?array $mimeTypes = null: ファイル拡張子とMIMEタイプのマッピング配列(省略可能)。
  • ?callable $rewrite = null: URL書き換えコールバック関数(省略可能)。

戻り値(return)

void

Phar::webPhar は、Phar アーカイブを Web サーバー経由で公開するためのストリームラッパーを登録します。このメソッドは戻り値を返しません。

関連コンテンツ