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.


Installation

npm install --save-dev @capsulescodes/browser-php


Usage

This package gives access to three binaries. php-cli and php-server from node_modules, composer from vendor.


PHP

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!


Serve

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


Composer

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


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



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