uuf6429 / dnode-php-sync-client
Minimalistic dnode client for PHP
Requires
- php: >=5.6
Requires (Dev)
- phpunit/phpunit: ^5.7
- symfony/process: ^3.2
README
Minimalistic dnode client for PHP, supports only synchronous calling of methods on remote server.
- It can call method on remote dnode server and it can receive response.
- It does not support any other callbacks.
- It does not support full dnode-protocol - response from remote server must not contain any callbacks or links section.
Look at dnode-php for a more complex support of dnode protocol.
Table Of Contents
Installation
The recommended and easiest way to install Rune is through Composer:
composer require uuf6429/dnode-php-sync-client "~2.0"
Usage
Let's first start with a simple node.js server exposing echo
method over dnode:
var dnode = require('dnode'); var port = process.argv[2] || 8080; dnode({ echo: function (data, callback) { callback(null, data); } }).listen(port);
Now, we can call this echo method from PHP like this:
<?php require_once 'vendor/autoload.php'; $dnode = new \uuf6429\DnodeSyncClient\Dnode(); $connection = $dnode->connect('localhost', 8080); $response = $connection->call('echo', ['Hello, world!']); var_dump($response);
Result:
array(2) { [0] => NULL [1] => string(13) "Hello, world!" }
Run tests
To run all tests, just run ./vendor/bin/phpunit
from the main directory.
Note: tests/DnodeTest.php
is an integration test which needs dnode echo server running. Sources for this test server are in tests/node
directory.
The test suite will automatically install npm dependencies and start the echo service on port 8080 when necessary.