react / eep
EEP event process for React.
v0.1.0
2013-02-22 15:52 UTC
Requires
- php: >=5.3.2
- evenement/evenement: 1.0.*
- react/event-loop: 0.2.*
Requires (Dev)
- ext-pcntl: *
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-12-15 04:15:30 UTC
README
A port of Darach Ennis' Embedding Event Processing (eep.js - https://github.com/darach/eep-js) to PHP and React. Take a look at the README there for background and motivation.
Install
The recommended way to install react/eep is through composer.
{ "require": { "react/eep": "v0.1.0" } }
Example
Here is an example of a sum tumbling window
<?php require __DIR__.'/../vendor/autoload.php'; $values = array(2, 4, 6, 8, 10, 13, 14, 15, 18, 20, 30, 14, 15, 10, 10, 9, 3); $sum_fn = new React\EEP\Stats\Sum; $tumbling_sum = new React\EEP\Window\Tumbling($sum_fn, count($values)); // Register callback $tumbling_sum->on('emit', function($value) { echo "sum:\t", $value, "\n";}); // Pump data into the tumbling windows foreach($values as $v) { $tumbling_sum->enqueue($v); }
Other Examples
The examples mainly come from Darach's, but also others from my talk on Event Stream Processing in PHP:
- analytics.php - example using the stats functions
- composite.php - example combining stats functions
- custom.php - Tim Bray's widefinder with a monotonic clock
- leader.php - A beast of a custom window + agg that does lagged correlation for leader detection between two streams
- lowrate.php - Simple periodic low rate detector example
- microbench-nontemporal.php - Darach's event based benchmark
- microbench-temporal.php - Darach's periodic benchmark
- servermon.php - An example of using the All stats function to track several variables
- tick.php - An aggreagate function which implements a simple state machine for pattern detection
- tuplejoin.php - An auction themed example doing a hash based semijoin between two streams
Tests
To run the test suite, you need PHPUnit.
$ phpunit
License
See LICENSE.