[website] Add php-extension query parameter - #3645
Merged
Merged
Conversation
adamziel
force-pushed
the
adamziel/add-php-extension-query-param
branch
from
May 15, 2026 00:16
b77109a to
d3dc2c9
Compare
adamziel
force-pushed
the
adamziel/add-php-extension-query-param
branch
from
May 15, 2026 00:58
d3dc2c9 to
f73cd80
Compare
adamziel
force-pushed
the
adamziel/add-php-extension-query-param
branch
from
May 15, 2026 14:08
f73cd80 to
4632a84
Compare
adamziel
force-pushed
the
adamziel/add-php-extension-query-param
branch
from
May 15, 2026 14:38
4632a84 to
88aaf71
Compare
adamziel
changed the base branch from
trunk
to
adamziel/fix-web-jspi-side-module-longjmp
May 15, 2026 14:38
adamziel
force-pushed
the
adamziel/fix-web-jspi-side-module-longjmp
branch
from
May 15, 2026 15:23
e6241d0 to
d85c42d
Compare
adamziel
force-pushed
the
adamziel/add-php-extension-query-param
branch
from
May 15, 2026 15:24
88aaf71 to
097c9a1
Compare
adamziel
force-pushed
the
adamziel/fix-web-jspi-side-module-longjmp
branch
from
May 15, 2026 22:06
d85c42d to
8a10166
Compare
adamziel
force-pushed
the
adamziel/add-php-extension-query-param
branch
from
May 15, 2026 22:06
097c9a1 to
66b0f9a
Compare
Base automatically changed from
adamziel/fix-web-jspi-side-module-longjmp
to
trunk
May 15, 2026 22:19
adamziel
force-pushed
the
adamziel/add-php-extension-query-param
branch
2 times, most recently
from
May 15, 2026 23:08
8656837 to
83e11fa
Compare
adamziel
marked this pull request as ready for review
May 15, 2026 23:34
Contributor
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds support for a php-extension Query API parameter on the Playground website, allowing callers to request PHP.wasm extension manifests via URL and pass them through to both Blueprints V1 and V2 boot paths.
Changes:
- Added query parsing + normalization for
php-extension(absolute/root-relative/page-relative), with scheme validation. - Plumbed parsed extensions through
bootSiteClient→startPlaygroundWeb→ Blueprints V1/V2 handlers. - Added unit + e2e coverage and updated Query API documentation.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/playground/website/src/lib/state/url/php-extension-query.ts | Parses and normalizes php-extension query values into runtime extension requests. |
| packages/playground/website/src/lib/state/url/php-extension-query.spec.ts | Unit tests for URL resolution and scheme rejection behavior. |
| packages/playground/website/src/lib/state/redux/boot-site-client.ts | Wires parsed php-extension requests into startPlaygroundWeb options. |
| packages/playground/website/public/test-fixtures/php-extension-intl/manifest.json | Adds a public fixture manifest for an intl extension. |
| packages/playground/website/playwright/e2e/query-api.spec.ts | Adds e2e coverage for loading extensions via php-extension. |
| packages/playground/client/src/index.ts | Extends StartPlaygroundOptions API to accept extensions. |
| packages/playground/client/src/blueprints-v2-handler.ts | Passes extension requests into the V2 boot path. |
| packages/playground/client/src/blueprints-v1-handler.ts | Merges existing intl handling with new extension requests. |
| packages/playground/client/src/blueprints-v1-handler.spec.ts | Verifies extension requests are passed through to the runtime. |
| packages/docs/site/docs/developers/06-apis/query-api/01-index.md | Documents the new php-extension parameter. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
adamziel
force-pushed
the
adamziel/add-php-extension-query-param
branch
from
May 15, 2026 23:43
83e11fa to
01397ef
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
Adds a
php-extensionQuery API parameter for the Playground website. It accepts absolute, root-relative, and page-relative HTTP(S) manifest URLs, can be repeated, and mirrors the CLI--php-extensionmanifest flow for browser runtimes.The website parses the query values into runtime
extensionsrequests and passes them throughstartPlaygroundWebto the Blueprints V1 and V2 boot paths. The Query API docs now list the new parameter.Usage
Because
php-extensionis added by this PR, the first link targets a local website server running this branch. Start it first:Click here to test locally.
The link loads the SQLite Database Integration
wp_mysql_parsermanifest and opens/wp-admin/plugins.php. The Blueprint installs a tiny mu-plugin that shows an admin notice like:PHP extension check: wp_mysql_parser extension is loaded; native parser classes available: yes.After this PR ships, click here to test on playground.wordpress.net.
Examples:
To load multiple extension manifests, repeat the
php-extensionparameter:?php-extension=https://.../manifest.json&php-extension=https://.../another-manifest.json.Testing
NX_DAEMON=false npx nx test playground-website --testFile=php-extension-query.spec.tsNX_DAEMON=false npx nx test playground-client --testFile=blueprints-v1-handler.spec.tsNX_DAEMON=false npx playwright test --config=packages/playground/website/playwright/playwright.config.ts --project=chromium e2e/query-api.spec.ts -g 'option \php-extension`' --workers=1 --reporter=list`The Playwright e2e covers both a routed local
intlfixture and the version-pinned SQLite Database Integrationwp_mysql_parserrelease manifest, then executesWP_MySQL_Native_Lexerto verify the real.soloaded.