【PHP8.x】PharData::mungServer()メソッドの使い方
mungServerメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
mungServerメソッドは、PharDataアーカイブに含まれるPHPスクリプトがWebサーバー上で実行される際に、$_SERVERグローバル変数の特定のエントリを書き換える処理を実行するメソッドです。PharDataは、複数のファイルを一つのアーカイブにまとめ、PHPの拡張機能によって扱われる形式です。このメソッドの主な目的は、PharアーカイブがWebサーバーのサブディレクトリに配置された場合など、実際のファイルパスとスクリプトが認識するパスとの間にずれが生じる問題を解決することにあります。
具体的には、$_SERVER['PHP_SELF']、$_SERVER['SCRIPT_FILENAME']、$_SERVER['SCRIPT_NAME']、$_SERVER['REQUEST_URI']といった、スクリプト自身のパスやURLに関連する$_SERVER変数の値を、指定された新しいパスに調整します。これにより、Pharアーカイブ内のアプリケーションが、Webサーバー上での正しいパスを認識し、期待通りに動作できるようになります。例えば、/my/app.phar/index.phpという実際のパスを、アプリケーション内部では/index.phpとして認識させたい場合などに利用されます。この機能は、PharアーカイブをWebアプリケーションとしてデプロイする際に、パス解決の複雑さを軽減し、移植性を高めるために非常に有効です。開発者はこのメソッドを用いて、アーカイブが配置される環境によらず、スクリプトが常に正しいパスを参照するように設定できます。
構文(syntax)
1<?php 2$pharData = new PharData('archive.tar'); 3$pharData->mungServer(['PHP_SELF', 'REQUEST_URI'], ['/myapp/index.php', '/myapp/']); 4?>
引数(parameters)
array $variables
- array $variables: Pharアーカイブのメタデータに含める変数と値の連想配列。キーは変数名、値は変数の値となります。
戻り値(return)
PharData
mungServerメソッドは、PharDataオブジェクト自身を返します。これにより、メソッドチェーンによる連続した操作が可能になります。