Skip to content

capsulescodes/browser-php

Repository files navigation

Browser PHP

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.


Warning

This package serves as a proof of concept and is currently under active development. We recommend exercising caution when using it.


Installation

npm install --save-dev browser-php


Usage

This package gives access to three binaries. php and serve from node_modules, composer from vendor.


PHP

node node_modules/.bin/php

Or add script in package.json

"scripts" : {
    "php" : "php"
},

Example

npm run php -r "echo 'Hello Browser PHP World!';"


> Hello Browser PHP World!


Serve

node node_modules/.bin/serve

Or add script in package.json

"scripts" : {
    "serve" : "serve"
},

Example

npm run serve


> PHP server is listening on url http://localhost:2222


Composer

node node_modules/.bin/php --disable-functions vendor/bin/composer

Or add script in package.json

"scripts" : {
    "composer": "php --disable-functions vendor/bin/composer"
},

Example

npm run composer

>    ______
>   / ____/___  ____ ___  ____  ____  ________  _____
>  / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
> / /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
> \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
>                     /_/
> Composer version 2.7.2 2024-03-11 17:12:18


Configuration

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.2

  • 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



Contributing

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.

Credits

License

MIT