Skip to content

Latest commit

 

History

History
61 lines (37 loc) · 2.13 KB

README.md

File metadata and controls

61 lines (37 loc) · 2.13 KB

DNode protocol for PHP

This project implements the DNode remote procedure call protocol for PHP. The intent is to enable PHP scripts to act as part of a distributed Node.js cloud, allowing Node to call PHP code, and PHP to call Node code.

You can read more about DNode and PHP in the introductory blog post.

Installing

dnode-php can be installed using the Composer tool. You can either add dnode/dnode to your package dependencies, or if you want to install dnode-php as standalone, go to the main directory of this package and run:

$ wget http://getcomposer.org/composer.phar 
$ php composer.phar install

You can then use the composer-generated autoloader to access the DNode classes:

require 'vendor/.composer/autoload.php';

Running the examples

After installing, you can run the DNode examples located in the examples directory. Each example contains both a client and a server.

For example:

$ php examples/simple/server.php
$ php examples/simple/client.php 
n = 3300

The examples have been written to be compatible with the DNode examples, meaning that you can use any combination of PHP-to-PHP, Node-to-Node, PHP-to-Node, or Node-to-PHP as you wish.

$ node simple/client.js 
n = 3300

Current limitations

  • Only regular, non-encrypted TCP sockets are supported
  • Only one simultaneous connection supported

Performance

Surprisingly, with simple calls PHP is faster as a DNode client than Node.js. Talking to the simple example DNode server from the dnode repository:

$ time php examples/simple/client.php 
n = 3300

real	0m0.067s
user	0m0.030s
sys	0m0.030s

The same with a Node.js client:

$ time node simple/client.js 
n = 3300

real	0m0.173s
user	0m0.140s
sys	0m0.030s

Development

dnode-php is under heavy development. If you want to participate, please send pull requests.