The frame is a Symfony 8 application: a guestbook, with Doctrine and SQLite, Twig, forms and a session. PHP, compiled to WebAssembly, runs it in this page: no server runs it.
Try it: sign the guestbook, then reload the page. Your message is still here, and the form remembers your name: it is in the session.
Loading PHP…
Or without the frame: the same application, on its own page, with its URLs in the address bar. PHP runs in the service worker there.
stack.php, embeds the
application, app/, at /app: its
vendor/ too, and the cache of Symfony, made when it is
built. opcache compiles the files as they run.
serveInFrame() starts a service worker, sw.js,
that hands what the frame asks for to this page, that runs
php.request() in a Web Worker
(createPhpInWorker()): the page does not freeze.
/symfony, that
PHP keeps in IndexedDB. The page keeps the cookies.