Run any PHP stuff within your browser.
The Browser PHP package offers a collection of commands for running PHP from the Node CLI or for launching a PHP server from Node. Perfect for running a Laravel project in CodeSandbox, for example.
This article provides an in-depth exploration of the package.
npm install --save-dev @capsulescodes/browser-php
This package gives access to three binaries. php-cli
and php-server
from node_modules
, composer
from vendor
.
node node_modules/.bin/php-cli
Or add script
in package.json
"scripts" : {
"php" : "php-cli"
},
Example
npm run php -r "echo 'Hello Browser PHP World!';"
> Hello Browser PHP World!
node node_modules/.bin/php-server
Or add script
in package.json
"scripts" : {
"serve" : "php-server"
},
Example
npm run serve
> PHP server is listening on url http://localhost:2222
node node_modules/.bin/php vendor/bin/composer
Or add script
in package.json
"scripts" : {
"composer": "php-cli vendor/bin/composer"
},
Example
npm run composer
> ______
> / ____/___ ____ ___ ____ ____ ________ _____
> / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
> / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
> \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
> /_/
> Composer version 2.7.7 2024-06-10 22:11:12
The scripts can be configured with environment variables
-
BROWSER_PHP_VERSION
: The PHP version you need | default :8.2
-
BROWSER_PHP_COMPOSER_VERSION
: The Composer executable version | default :2.7.7
-
BROWSER_PHP_COMPOSER_PATH
: The Composer executable path | default :vendor/bin
-
BROWSER_PHP_COMPOSER_NAME
: The Composer executable name | default :composer
-
BROWSER_PHP_SERVER_HOST
: The host name you need | default :http://localhost
-
BROWSER_PHP_SERVER_PORT
: The port you need | default :2222
-
BROWSER_PHP_SERVER_PATH
: The directory path you need | default :public
-
BROWSER_PHP_SERVER_DEBUG
: The debug mode you need | default :false
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate.