I am giving up my bed for one night.

My Sleep Out helps youth facing homelessness find safe shelter and loving care at Covenant House. That care includes essential services like education, job training, medical care, mental health and substance use counseling, and legal aid — everything they need to build independent, sustainable futures.

By supporting my Sleep Out, you are supporting the dreams of young people overcoming homelessness.

Together, we are working towards a future where every young person has a safe place to sleep.

Thank you.

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.