コマンドに基づいて展開手順を定義しようとしています:
php <phar_file_deployed_on_server>.phar
このコマンドは、phar アーカイブの外部に index.php ファイルを生成します。
index.php ファイルは、phar アーカイブ内の N-file.php への「薄い」ディスパッチャーとして機能します。
生成された index.php ファイルの例:
<?
$requiredFile = "phar://<phar_file_deployed_on_server>.phar";
/**
* For example index.php can check $_GET array and dispatch
* to file inside Phar archive.
**/
if (array_key_exists("getParameter", $_GET))
$requiredFile = $requiredFile . "/" . $_GET['getParameter'] . ".php";
else
<handling_of_else_condition>;
require_once $requiredFile;
__HALT_COMPILER();
?>
上記のディスパス ルールは一例です。
私の考えは、展開手順を単純化することです。例では $_GET 配列のチェックを提供しましたが、展開中に (コマンド ライン パラメーターなどを介して) より複雑なルールが生成される可能性があります。
PHP Web アプリケーションを作成し、簡単にデプロイできるように Phar 形式に圧縮しました。
index.php
Phar アーカイブ内のアプリケーションにリンクするファイルを計画しているため、アプリケーションは本番マシンで解凍せずに実行できます。デプロイ中にファイルを生成する
index.php
には、次のコマンドを本番マシン シェルで起動する必要があります。php <just_deployed_phar_file>
スタブ ファイル内のコードは、
index.php
インストールされたばかりの Phar アーカイブを参照するようにファイルを生成します。これは、スタブ ファイルを使用する正しい方法ですか?