A React hook for running PHP? Why not?
It runs in a Netlify Edge Function and uses php-wasm to execute the PHP. It runs asynchronously, so you need a renderer that supports async components.
/** @jsx h */
import { h, renderToString } from "https://deno.land/x/jsx/mod.ts";
import { usePHP } from "https://deno.land/x/use_php/mod.ts";
export default async function handler(request: Request) {
const php = await usePHP(request, h);
return new Response(
await renderToString(
<html>
<head>
<title>Use PHP</title>
</head>
<body>
{await php`
<?php phpinfo(); ?>
`}
</body>
</html>
),
{
headers: {
"content-type": "text/html; charset=UTF-8",
},
}
);
}
export const config = {
path: "/*",
excluded_paths: "/public/*",
};
Pass in the request object and an optional JSX renderer and it will return tagged template that you can use to execute PHP. If you pass a JSX render function to the hook (e.g. h
or React.createElement
), then the template will return a JSX element. If you omit the renderer it will return an HTML string instead.
Try it yourself:
- Why?
- Why not? That Lambo won't buy itself.
- How can I deploy this to production?
- 🤦🏻♂️
MIT Licence. © 2023 Matt Kane