Slide 56
Slide 56 text
$kernel = new AppKernel('prod', false);
$reactHttp->on('request', function ($request, $response) use ($kernel) {
$headers = $request->getHeaders();
if (in_array(strtoupper($request->getMethod()), ['POST','PUT','DELETE','PATCH'])
&& isset($headers['Content-Type'])
&& (0 === strpos($headers['Content-Type'], 'application/x-www-form-urlencoded'))
)
parse_str($request->getBody(), $post);
$sfRequest = new Symfony\Component\HttpFoundation\Request(
$request->getQuery(),
$post ?? [],
array(),
array(),
$request->getFiles(),
array(),
$request->getBody()
);
$sfRequest->setMethod($request->getMethod());
$sfRequest->headers->replace($headers);
$sfRequest->server->set('REQUEST_URI', $request->getPath());
if (isset($headers['Host']))
$sfRequest->server->set('SERVER_NAME', explode(':', $headers['Host'])[0]);
$sfResponse = $kernel->handle($sfRequest);
$response->writeHead($sfResponse->getStatusCode(), $sfResponse->headers->all());
$response->end($sfResponse->getContent());
$kernel->terminate($request, $response);
});