Loading Files
Loading Single Files
The constructor method of the php-wasm objects accepts a
files parameter to load files into the filesystem
by URL. For example, the php-intl extension
requires us to load icudt72l.dat into the
/preload directory.
const sharedLibs = [`https://unpkg.com/php-wasm-intl/php\${PHP_VERSION}-intl.so`];
const files = [
{
name: 'icudt72l.dat',
parent: '/preload/',
url: 'https://unpkg.com/php-wasm-intl/icudt72l.dat'
}
];
const php = new PhpWeb({sharedLibs, files});Preloaded FS
Use the PRELOAD_ASSETS key in your
.php-wasm-rc file to define a list of files and
directories to include by default.
See compiling/php-wasm-rc.html#preload_assets for more information.
locateFile
You can provide the locateFile option to
php-wasm as a callback to map the names of files to URLs where
they’re loaded from. Returning undefined will
fallback to the default behavior.
This option is useful if your static assets are served from a different directory than your JavaScript files. It applies to .wasm files, shared libraries, single files, and preloaded FS packages in .data files.
const php = new PhpWeb({locateFile: filename => `/my/static/path/${filename}`});Persistent Storage
IDBFS (Web & Worker)
To use IDBFS in PhpWeb, pass a persist object
with a mountPath key. The value of
mountPath will be used as the path to the
persistent directory within the PHP environment.
const { PhpWeb } = await import('https://cdn.jsdelivr.net/npm/php-wasm/PhpWeb.mjs');
const php = new PhpWeb({persist: {mountPath: '/persist'}});NodeFS (NodeJS Only)
To use NodeFS in PhpWeb, pass a persist object
with mountPath & localPath
keys.
localPath will be used as the path to the HOST
directory to expose to PHP. mountPath will be used
as the path to the persistent directory within the PHP
environment.
const { PhpNode } = await import('https://cdn.jsdelivr.net/npm/php-wasm/PhpNode.mjs');
const php = new PhpNode({persist: {mountPath: '/persist', localPath: '~/your-files'}});