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.
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:
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.
$ 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
- Only regular, non-encrypted TCP sockets are supported
- Only one simultaneous connection supported
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
dnode-php is under heavy development. If you want to participate, please send pull requests.