PHP.js JavaScript module
PHP.js JavaScript module
The php.js
file generated by the WebAssembly PHP build pipeline is not a vanilla Emscripten module. Instead, it's an ESM module that wraps the regular Emscripten output and adds some extra functionality.
Here's the API it exposes:
// 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) {}
The generated JavaScript module is not meant for direct use. Instead, it can be consumed through the PHP
class:
// In Node.js:
const php = new PHP(await loadNodeRuntime('8.0'));
// On the web:
const php = new PHP(await loadWebRuntime('8.0'));
Both of these classes extend the BasePHP
class exposed by the @php-wasm/universal
package and implement the UniversalPHP
interface that standardizes the API across all PHP environments.
Loading the PHP runtime
The load() method handles the entire PHP initialization pipeline. In particular, it:
- Instantiates the Emscripten PHP module
- Wires it together with the data dependencies and loads them
- Ensures is all happens in a correct order
- Waits until the entire loading sequence is finished