メインコンテンツへスキップ

PHP.js JavaScript モジュール

PHP.js JavaScript モジュール

WebAssembly PHP ビルドパイプライン によって生成される php.js ファイルは、バニラの Emscripten モジュールではありません。これは、通常の Emscripten 出力をラップし、いくつかの追加機能を追加した ESM モジュールです。

公開される API は次のとおりです。

// php.wasm size in bytes:
export const dependenciesTotalSize = 5644199;

// php.wasm filename:
export const dependencyFilename = 'php.wasm';

// Run Emscripten's generated module:
export default function (jsEnv, emscriptenModuleArgs) {}

生成されたJavaScriptモジュールは直接使用するためのものではありません。代わりに、PHPクラスを通じて使用できます。

// In Node.js:
const php = new PHP(await loadNodeRuntime('8.0'));

// On the web:
const php = new PHP(await loadWebRuntime('8.0'));

これらのクラスは両方とも、@php-wasm/universal パッケージによって公開される BasePHP クラスを拡張し、すべての PHP 環境で API を標準化する UniversalPHP インターフェイスを実装します。

PHP ランタイムのロード

load() メソッドは、PHP の初期化パイプライン全体を処理します。具体的には、次の処理を行います。

  • Emscripten PHP モジュールをインスタンス化する
  • データ依存関係と接続してロードする
  • すべてが正しい順序で実行されることを確認する
  • ロードシーケンス全体が完了するまで待機する