Exemple #1
0
<?php

$app = (include 'bootstrap/app.php');
$react = function (\React\Http\Request $request, \React\Http\Response $response) use($app, $host, $port) {
    $mapRequest = function (\React\Http\Request $request, $content) {
        $post = [];
        $method = $request->getMethod();
        $headers = $request->getHeaders();
        if (isset($headers['Content-Type']) && 0 === strpos($headers['Content-Type'], 'application/x-www-form-urlencoded') && in_array(strtoupper($method), ['POST', 'PUT', 'DELETE', 'PATCH'])) {
            parse_str($content, $post);
        }
        $sf2Request = new Illuminate\Http\Request($request->getQuery(), $post, [], [], [], [], $content);
        $sf2Request->setMethod($method);
        $sf2Request->headers->replace($headers);
        $sf2Request->server->set('REQUEST_URI', $request->getPath());
        $sf2Request->server->set('SERVER_NAME', explode(':', $headers['Host'])[0]);
        $this->_output = "[{$method}] {$request->getPath()}";
        return $sf2Request;
    };
    $mapResponse = function (React\Http\Response $response, Symfony\Component\HttpFoundation\Response $sf2Response) {
        $headers = $sf2Response->headers->all();
        $status = $sf2Response->getStatusCode();
        $response->writeHead($status, $headers);
        if ($sf2Response instanceof Symfony\Component\HttpFoundation\StreamedResponse) {
            ob_start();
            $sf2Response->sendContent();
            $content = ob_get_contents();
            ob_end_clean();
        } else {
            $content = $sf2Response->getContent();
        }