Esempio n. 1
0
 /**
  * Populate from request body
  * 
  * @param  string $string 
  * @return RequestHeaders
  */
 public function fromString($string)
 {
     $pattern = str_replace('%token', self::PATTERN_TOKEN, self::PATTERN_REQUEST_LINE);
     $headers = preg_split("/\r\n/", $string, 2);
     if (!preg_match($pattern, $headers[0], $matches)) {
         return $this;
     }
     $method = $matches['token'];
     $uri = $matches['uri'];
     $protocolVersion = $matches['version'];
     $this->setMethod($method)->setUri($uri)->setProtocolVersion($protocolVersion);
     // If we have more headers, parse them
     if (count($headers) == 2) {
         parent::fromString($headers[1]);
     }
     return $this;
 }
Esempio n. 2
0
 public function getResponse(ServiceLocatorInterface $serviceLocator, $path)
 {
     $serviceLocator->get('log')->info('Build Response');
     $urlDispatcher = new UrlDispatcher();
     $urlDispatcher->setServiceLocator($serviceLocator);
     $baseXMSResponse = $urlDispatcher->dispatch($path);
     $response = new ZendResponse();
     switch ((string) $baseXMSResponse->code) {
         case 200:
             $requestHandler = RequestHandler::factory((string) $baseXMSResponse->id, (string) $baseXMSResponse->contentclass, $this);
             // override response
             $response = $requestHandler->getResponse();
             break;
         case 301:
             if (true) {
                 $response->setContent('Redirect to <a href="' . (string) $baseXMSResponse->path . '">' . (string) $baseXMSResponse->path . '</a>');
                 $response->setStatusCode(200);
             } else {
                 $response->setContent('Redirect');
                 $response->setStatusCode(301);
                 $headers = Headers::fromString('Location: ' . (string) $baseXMSResponse->path);
                 $response->setHeaders($headers);
             }
             break;
         case 500:
             $response->setContent('500 - Server Error.');
             $response->setStatusCode((string) $baseXMSResponse->code);
             break;
         case 400:
             $response->setContent('404 - Not found.');
             $response->setStatusCode((string) $baseXMSResponse->code);
             break;
         default:
             $response->setContent('Unhandled return code.');
             $response->setStatusCode(500);
     }
     $response->setReasonPhrase($response->getReasonPhrase());
     // set default phrase
     $serviceLocator->get('accumulator')->start('BaseXMS', BASEXMS_START);
     $serviceLocator->get('accumulator')->stop('BaseXMS');
     return $response;
 }
Esempio n. 3
0
 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;
 }
Esempio n. 4
0
 /**
  * Populate object from string
  * 
  * @param  string $string 
  * @return ResponseHeaders
  */
 public function fromString($string)
 {
     $headers = preg_split("/\r\n/", $string, 2);
     if (!preg_match(self::PATTERN_STATUS_LINE, $headers[0], $matches)) {
         return $this;
     }
     $version = $matches['version'];
     $status = $matches['status'];
     $message = $matches['message'] ?: '';
     $this->setProtocolVersion($version)->setStatusCode($status, $message);
     // If we have more headers, parse them
     if (count($headers) == 2) {
         parent::fromString($headers[1]);
     }
     return $this;
 }