/** * Sending back a response to mongrel2 webserver. * * @param Request $request * @param Response $response */ private function sendResponseToMongrel(Request $request, Response $response) { $response->prepare($request); // Map back our Symfony Response to a MongrelResponse. $mongrelResponse = new MongrelResponse($request->attributes->get('mongrel2_uuid'), [$request->attributes->get('mongrel2_listener')]); $mongrelResponse->setContent($response->getContent()); $headers = $response->headers->all(); foreach ($response->headers->getCookies() as $cookie) { $headers['Set-Cookie'][] = $cookie; } $mongrelResponse->setHeaders($headers); $mongrelResponse->setHttpVersion($response->getProtocolVersion()); $mongrelResponse->setStatusCode($response->getStatusCode()); $mongrelResponse->setReasonPhrase(Response::$statusTexts[$response->getStatusCode()]); $this->handler->sendResponse($mongrelResponse); }
<?php use h4cc\Mongrel2\Handler; use h4cc\Mongrel2\Transport; use h4cc\Mongrel2\Response; require_once __DIR__ . '/../vendor/autoload.php'; $recv = 'tcp://127.0.0.1:9997'; $send = 'tcp://127.0.0.1:9996'; $handler = new Handler(new Transport($recv, $send)); while (true) { $request = $handler->receiveRequest(); $response = new Response($request->getUuid(), [$request->getListener()]); $response->setContent('<pre> Request: ' . print_r($request, true) . ' Response:' . print_r($response, true) . ' </pre>'); $handler->sendResponse($response); }