The Hoa\Zombie library.
Hoa is a modular, extensible and
structured set of PHP libraries.
Moreover, Hoa aims at being a bridge between industrial and research worlds.
This library allows to transform a process into a zombie: not alive, nor dead!
This is possible only if the program is running behind PHP-FPM (which manages processes for us).
$ composer require hoa/zombie '~3.0'
For more installation procedures, please read the Source page.
Before running the test suites, the development dependencies must be installed:
$ composer install
Then, to run all the test suites:
$ vendor/bin/hoa test:run
For more information, please read the contributor guide.
To create a zombie, all we have to do is to call the
method. To kill a zombie, we have the choice between different weapons:
Hoa\Zombie\Zombie::bludgeon, tap tap;
Hoa\Zombie\Zombie::burn, if you are cold;
All these methods have been proven. Thus:
// I'm alive! Hoa\Zombie\Zombie::fork(); // I'm a zombie! Hoa\Zombie\Zombie::decapitate(); // I'm dead…
But we have to run the script behind FastCGI, that is why we will use the
Hoa\Fastcgi library in the
Zombie.php file, we write the following instructions:
echo 'I guess I am sick…', "\n"; Hoa\Zombie\Zombie::fork(); // Do whatever you want here, e.g.: sleep(10); file_put_contents( __DIR__ . DS . 'AMessage', 'Hello from after-life… or somewhere about!' ); Hoa\Zombie\Zombie::decapitate();
Then, in the
Run.php file, we write:
$fastcgi = new Hoa\Fastcgi\Responder( new Hoa\Socket\Client('tcp://127.0.0.1:9000') ); echo $fastcgi->send([ 'GATEWAY_INTERFACE' => 'FastCGI/1.0', 'REQUEST_METHOD' => 'GET', 'SCRIPT_FILENAME' => __DIR__ . DS . 'Zombie.php' ]);
And finally, we can test:
$ php-fpm -d listen=127.0.0.1:9000 $ php Run.php I guess I am sick…
And 10 seconds after, we will see the
AMessage file appear with the content:
Hello from after-life… or somewhere about!.
hack book of
contains detailed information about how to use this library and how it works.
To generate the documentation locally, execute the following commands:
$ composer require --dev hoa/devtools $ vendor/bin/hoa devtools:documentation --open
More documentation can be found on the project's website: hoa-project.net.
There are mainly two ways to get help:
Do you want to contribute? Thanks! A detailed contributor guide explains everything you need to know.
Hoa is under the New BSD License (BSD-3-Clause). Please, see
LICENSE for details.