Php-Cgi-Wasm Methods
constructor
@todo Finish documenting constructor options object.
The php-cgi-wasm constructor takes an options bucket object as its single parameter. The keys are outlined below.
const php = new PhpCgiWorker;sharedLibs
array of objects
const php = new PhpCgiWorker({
sharedLibs: [
{ url: 'https://unpkg.com/php-wasm-sqlite/php8.3-sqlite.so', ini: true },
{ url: 'https://unpkg.com/php-wasm-sqlite/sqlite.so', ini: false },
]
});files
array of objects
const php = new PhpCgiWorker({
files: [
{
name: 'icudt72l.dat',
parent: '/preload/',
url: 'https://unpkg.com/php-wasm-intl/icudt72l.dat'
}
]
});actions
objects<string, function>
const php = new PhpCgiWorker({
actions: {
helloWorld: (php, name) => {
return `Hello, ${name}!`;
},
}
});locateFile
function
const result = await sendMessage('hello', 'person');docroot
string
Tells php where to find the php source files for your website inside the emscripten filesystem.
const php = new PhpCgiWorker({
docroot: '/persist/public'
});entrypoint
The file within docroot that should be used as
the application entrypoint.
const php = new PhpCgiWorker({
});prefix
string
If a request is made with a pathname that starts with
prefix, php-cgi-wasm will activate and attempt to
route the request to PHP rather than allowing it to proceed to
the network.
const php = new PhpCgiWorker({
});exclude
array of strings
If a request matched the prefix, but the URL also matches an
element of exclude, then PHP will ignore the
request and it will be sent to the network.
const php = new PhpCgiWorker({
});rewrite
function(string): string
Pass a function that will receive paths and rewrite them before PHP begins routing.
const php = new PhpCgiWorker({
});types
object.<string, string>
const php = new PhpCgiWorker({
});notFound
function(request): response
This callback will be called when the requested PHP
script/static asset is not found, and should return a
Response object.
const php = new PhpCgiWorker({
});onRequest
function(request, response): void
Callback to run for every request.
const php = new PhpCgiWorker({
});handleInstallEvent
In service workers, this hooks into the install
event. This should be set up as follows:
self.addEventListener('install', event => php.handleInstallEvent(event));In service workers, this hooks into the activate
event. This should be set up as follows:
handleActivateEvent
self.addEventListener('activate', event => php.handleActivateEvent(event));In service workers, this hooks into the message
event. This should be set up as follows:
handleMessageEvent
self.addEventListener('message', event => php.handleMessageEvent(event));In service workers, this hooks into the fetch
event, and will call the request method in service
workers.
This should be set up as follows:
handleFetchEvent
self.addEventListener('fetch', event => php.handleFetchEvent(event));request
The request method only needs to be called
manually if PHP-CGI is running under NodeJS, or inside of a
webpage. When running in a service worker,
handleFetchEvent will call request
internally.
refresh
This will discard the current PHP instance and spin up a brand new one.