public function getResponse() { $this->serviceManager->get('log')->info('Build Response'); $response = new ZendResponse(); switch ($this->baseXMSResponse->queryToValue('//code')) { case 200: $requestHandler = \BaseXMS\RequestHandler\Factory::factory($this->baseXMSResponse, $this); // override response $response = $requestHandler->getResponse(); break; case 301: if (true) { $response->setContent('Redirect to <a href="' . (string) $this->baseXMSResponse->path . '">' . (string) $this->baseXMSResponse->path . '</a>'); $response->setStatusCode(200); } else { $response->setContent('Redirect'); $response->setStatusCode(301); $headers = Headers::fromString('Location: ' . (string) $this->baseXMSResponse->path); $response->setHeaders($headers); } break; case 500: $response->setContent('500 - Server Error.'); $response->setStatusCode((string) $this->baseXMSResponse->code); break; case 400: $response->setContent('404 - Not found.'); $response->setStatusCode((string) $this->baseXMSResponse->code); break; default: $response->setContent('Unhandled return code.'); $response->setStatusCode(500); } $response->setReasonPhrase($response->getReasonPhrase()); // set default phrase $this->serviceManager->get('accumulator')->start('BaseXMS', BASEXMS_START); $this->serviceManager->get('accumulator')->stop('BaseXMS'); return $response; }