예제 #1
0
 public function testRunServer()
 {
     $server = new DummyServer();
     $app = new App($server, ['port' => 80]);
     $app->run();
     $this->assertEquals(80, $server->port);
 }
예제 #2
0
#!/usr/bin/env php
<?php 
require_once __DIR__ . "/../vendor/autoload.php";
use React\Http\Request;
use React\Http\Response;
use React\EventLoop\Factory;
use Voidcontext\Arc\Reactor\App;
use Voidcontext\Arc\Reactor\Server\Adapter\ReactHttpServer;
$loop = Factory::create();
$connection = new React\MySQL\Connection($loop, array('dbname' => 'benchmark', 'user' => 'root'));
$connection->connect(function () {
});
$server = new ReactHttpServer($loop);
$app = new App($server, ['port' => 1337]);
$app->get('/', function (Request $request, Response $response) use($connection) {
    $connection->query("INSERT INTO product (name) values (?)", [uniqid("product")], function ($command, $conn) use($response) {
        if ($command->hasError()) {
            $response->writeHead(500);
            $response->end();
        } else {
            $conn->query("SELECT LAST_INSERT_ID() as id", function ($cmd, $conn) use($response) {
                if ($cmd->hasError()) {
                    $response->writeHead(500);
                    $response->end();
                } else {
                    $response->writeHead(200, ["Content-Type" => "application/json"]);
                    $response->write(json_encode([id => $cmd->resultRows[0]['id']]));
                    $response->end();
                }
            });
        }
예제 #3
0
<?php

require __DIR__ . "/../vendor/autoload.php";
use React\Http\Request;
use React\Http\Response;
use React\EventLoop\Factory;
use Voidcontext\Arc\Reactor\App;
use Voidcontext\Arc\Reactor\Server\Adapter\ReactHttpServer;
$loop = Factory::create();
$server = new ReactHttpServer($loop);
$app = new App($server, ['port' => 1337]);
$app->get('/', function (Request $request, Response $response) {
    $response->writeHead(200);
    $response->write("Awesome response at " . $request->getPath());
    $response->end();
});
$app->post('/', function (Request $request, Response $response) {
    $response->writeHead(200);
    $response->write("Awesome response at " . $request->getPath() . "\n");
    $response->write("Body: " . $request->getBody() . "\n");
    $response->end();
});
$app->run();
$loop->run();
예제 #4
0
 /**
  * @inheritdoc
  */
 public function createDispatcher()
 {
     return parent::createDispatcher();
 }