Pular para o conteúdo principal

Módulo JavaScript PHP.js

Módulo JavaScript PHP.js

O arquivo php.js gerado pelo pipeline de build WebAssembly PHP não é um módulo Emscripten vanilla. Em vez disso, é um módulo ESM que envolve a saída regular do Emscripten e adiciona algumas funcionalidades extras.

Aqui está a API que ele expõe:

// 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) {}

O módulo JavaScript gerado não é destinado ao uso direto. Em vez disso, pode ser consumido através da classe PHP:

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

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

Ambas essas classes estendem a classe BasePHP exposta pelo pacote @php-wasm/universal e implementam a interface UniversalPHP que padroniza a API em todos os ambientes PHP.

Carregando o runtime PHP

O método load() manipula todo o pipeline de inicialização do PHP. Em particular, ele:

  • Instancia o módulo PHP Emscripten
  • Conecta-o junto com as dependências de dados e as carrega
  • Garante que tudo aconteça na ordem correta
  • Espera até que toda a sequência de carregamento seja finalizada