Skip to content

decodelabs/overpass

Repository files navigation

Overpass

PHP from Packagist Latest Version Total Downloads GitHub Workflow Status PHPStan License

Simple node.js bridge for PHP

Overpass provides a simple interface for installing dependencies and interacting with native node.js scripts.

Get news and updates on the DecodeLabs blog.


Installation

composer require decodelabs/overpass

Usage

Load a context to work from:

use DecodeLabs\Overpass\Context;

$context = new Context('path/to/project/');

Or use the Overpass Veneer frontage to work from cwd(). Overpass will search back up the file tree for the nearest package.json.

use DecodeLabs\Overpass;

echo Overpass::$runDir; // Working directory
echo Overpass::$rootDir; // Parent or current dir containing package.json
echo Overpass::$packageFile; // Location  of package.json

Overpass::run('myfile.js'); // node myfile.js
Overpass::runScript('my-script'); // npm run my-script

Overpass::install('package1', 'package2'); // npm install package1 package2
Overpass::installDev('package1', 'package2'); // npm install package1 package2 --save-dev

Bridging

Overpass offers a simple Bridge system to allow you to define custom javascript, pass arguments to it, and consume the result via node.

// myfile.js
module.exports = function(input) {
    return 'hello ' + input;
}
use DecodeLabs\Overpass;

$result = Overpass::bridge('myfile.js', 'world'); // 'hello world'

Licensing

Overpass is licensed under the MIT License. See LICENSE for the full license text.

About

Simple node.js bridge for PHP

Resources

License

Stars

Watchers

Forks

Packages

No packages published