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