Skip to content
Nuclear Reactor written in PHP.
PHP Shell
Find file
Pull request Compare This branch is 2 commits ahead, 686 commits behind reactphp:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
examples
res
src/React
tests
.gitignore
.travis.yml
LICENSE
README.md
composer.json
composer.lock
phpunit.xml.dist
subtree-split.sh

README.md

React

Event-driven, non-blocking I/O with PHP.

Build Status

Install

The recommended way to install react is through composer.

{
    "require": {
        "react/react": "dev-master"
    }
}

Design goals

  • Usable with a bare minimum of PHP extensions, add more extensions to get better performance.
  • Provide a standalone event-loop component that can be re-used by other libraries.
  • Decouple parts so they can be replaced by alternate implementations.

React is non-blocking by default. Use workers for blocking I/O.

Usage

Events

Most classes extend événement, allowing you to bind to events.

Example

Here is an example of a simple HTTP server listening on port 1337:

<?php

$i = 1;

$app = new React\Espresso\Application();

$app->get('/favicon.ico', function ($request, $response) {
    $response->writeHead(204);
    $response->end();
});

$app->get('/', function ($request, $response) use (&$i) {
    $i++;

    $text = "This is request number $i.\n";
    $headers = array('Content-Type' => 'text/plain');

    $response->writeHead(200, $headers);
    $response->end($text);
});

$stack = new React\Espresso\Stack($app);
$stack->listen(1337);

Community

Check out #reactphp on irc.freenode.net. Also follow @reactphp on twitter.

Tests

To run the test suite, you need PHPUnit.

$ phpunit

License

MIT, see LICENSE.

Something went wrong with that request. Please try again.