Ir al contenido principal

Módulo JavaScript PHP.js

Módulo JavaScript PHP.js

El archivo php.js que genera el proceso de compilación de PHP WebAssembly no es un módulo Emscripten convencional. Es un módulo ESM que envuelve la salida habitual de Emscripten y añade algunas funciones adicionales.

Esta es la API que expone:

// Tamaño de php.wasm en bytes:
export const dependenciesTotalSize = 5644199;

// Nombre de archivo de php.wasm:
export const dependencyFilename = 'php.wasm';

// Ejecutar el módulo generado por Emscripten:
export default function (jsEnv, emscriptenModuleArgs) {}

El módulo JavaScript generado no está pensado para usarse directamente. En su lugar, se puede utilizar mediante la clase PHP:

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

// En la web:
const php = new PHP(await loadWebRuntime('8.0'));

Ambos cargadores de plataforma devuelven un identificador de entorno de ejecución que acepta la clase PHP de @php-wasm/universal, que proporciona la API compartida entre los distintos entornos. Consulta Paquetes PHP.wasm para entender cómo se relacionan la API compartida, los adaptadores de plataforma y los binarios específicos para cada versión.

Carga del entorno de ejecución PHP

La función loadPHPRuntime() gestiona el proceso de inicialización de PHP. En concreto:

  • Crea una instancia del módulo PHP de Emscripten
  • Lo conecta con las dependencias de datos y las carga
  • Garantiza que todo ocurra en el orden correcto
  • Espera hasta que finalice toda la secuencia de carga