【PHP8.x】Phar::mungServer()メソッドの使い方
mungServerメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
mungServerメソッドは、Pharアーカイブ内のPHPスクリプトがWebサーバー環境で動作する際に、特定の$_SERVER変数の値を修正するメソッドです。
PharアーカイブをWebアプリケーションとして利用する場合、Webサーバーからアクセスされると、$_SERVER変数群、例えば$_SERVER['PHP_SELF']や$_SERVER['SCRIPT_NAME']などの値が、Pharアーカイブ自体のパスを指してしまうことがあります。しかし、Pharアーカイブ内部のPHPスクリプトは、自身の場所をアーカイブのルートディレクトリからの相対パスとして認識する必要があります。
このmungServerメソッドは、そのような状況において、$_SERVER変数の値をPharアーカイブ内部のパス構造に合わせて書き換える役割を担います。引数として配列を受け取り、その配列内に指定された$_SERVER変数のキー(例: ['PHP_SELF', 'REQUEST_URI'])に対応する値を修正します。これにより、Pharアーカイブ内部で動作するスクリプトが、あたかもアーカイブがWebサーバーのルートディレクトリであるかのように動作し、パス解決やリソースの参照が正しく行われるようになります。
特に、$_SERVER['PHP_SELF']、$_SERVER['SCRIPT_NAME']、$_SERVER['SCRIPT_FILENAME']、$_SERVER['DOCUMENT_ROOT']、$_SERVER['REQUEST_URI']といった変数が主な修正対象となります。この機能は、Pharアーカイブとして配布されるWebアプリケーションの互換性と信頼性を高める上で非常に重要です。
構文(syntax)
1<?php 2 3Phar::mungServer(['REQUEST_URI', 'PHP_SELF', 'SCRIPT_NAME']); 4 5?>
引数(parameters)
array $variables
- array $variables: Phar::mungServer() が要求する環境変数名の連想配列
戻り値(return)
void
このメソッドは、Pharアーカイブの生成時にサルベージしたいサーバーメタデータのリストを設定するために使用されます。戻り値はありません。