[PHP-WASM Web] add mysqli function and constant polyfills #2123
+373
−3
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.
Motivation for the change, related issues
In this PR I experimented with writing a PHP extension that mocks the missing mysqli functions, classes, and constants.
Some plugins like Query Monitor directly call mysqli functions (#1990) unavailable on the web version of PHP-WASM.
To make this approach work we would need to rewrite all mysqli features and I think that what @adamziel proposed in Support SQLite at the network connection level is a much better solution that will also enable other plugins to work.
Implementation details
This PR adds a
mysqli_polyfill
PHP extension and creates all the necessary mysqli features for Query Monitor to activate.Testing Instructions (or ideally a Blueprint)