<?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(); }