Backward compatibility¶
From 1.0.0, the versions follow Semantic Versioning: a minor or a patch
version does not break what this page covers. Until then, a minor version can, and the changelog
says it, with BC break:.
What is covered¶
- The build arguments: their names, and the values they take.
- The extensions that are built by default: one can be added, not removed.
- The files that a build gives:
php-web.mjs,php-web.wasm,php-sw.js,php-node.mjsandphp-node.wasm. - The JavaScript API:
createPhp(),createPhpInWorker(), what they give, and their options. - What shows an application in a frame:
serveInFrame(),keepCookies()andwithCookies()ofphp-web.mjs,forwardToPhp()ofphp-sw.js, and their options. So is where a project puts its files,sw.jsnext toindex.html, and the key of the cookies inlocalStorage: with another one, the visitors would lose their session. Stack,Target,OpcacheandIcuData, and the functions ofsrc/functions.php: what a project uses, see Use it in your project.node/run.mjsandnode/fetch-files.mjs: their arguments, and what they do.
What is not¶
- The versions that the Dockerfile pins: PHP, emscripten and the libraries move in any version. A project that needs one of them gives it as a build argument.
- What PHP itself does, from a version to the next, and the size of what is built.
- The limitations: one can go away in any version.
- What only this repository uses: the tasks of
castor.php, the stacks ofstacks.php, the examples, the@internalfunctions ofsrc/functions-internal.php, and everything else indocker/: its stages,run.c, and what the.wasmfile exports.