Example #1
0
 /**
  * @param ServesRequestInfo $requestInfo
  *
  * @throws IceHawk\Exceptions\MalformedRequestUri
  * @return IceHawk\Interfaces\ServesUriComponents
  */
 public function resolveUri(ServesRequestInfo $requestInfo)
 {
     $uri = $requestInfo->getUri();
     # home
     if ($uri == '/') {
         return new UriComponents('Posts', 'Abstract', []);
     }
     # imprint
     if ($uri == '/imprint') {
         return new UriComponents('Blog', 'Imprint', []);
     }
     # sitemap
     if ($uri == '/sitemap') {
         return new UriComponents('Blog', 'Sitemap', []);
     }
     # posts
     if (preg_match("#^/posts/[^/]+/?\$#i", $uri)) {
         return new UriComponents('Posts', 'ShowPost', []);
     }
     # about author
     if (preg_match('#^/about/author/([^/]+)#i', $uri, $matches)) {
         $authorName = $matches[1];
         return new UriComponents('Blog', 'Author', ['authorName' => $authorName]);
     }
     return parent::resolveUri($requestInfo);
 }
Example #2
0
 /**
  * @param array $getData
  * @param array $postData
  * @param array $uploadedFiles
  *
  * @throws InvalidRequestMethod
  * @return ServesGetRequestData|ServesPostRequestData
  */
 public function buildRequest(array $getData, array $postData, array $uploadedFiles)
 {
     if ($this->requestInfo->getMethod() == Http::METHOD_POST) {
         return new PostRequest($this->getMergedData($postData), $uploadedFiles);
     } elseif (in_array($this->requestInfo->getMethod(), [Http::METHOD_GET, Http::METHOD_HEAD])) {
         return new GetRequest($this->getMergedData($getData));
     } else {
         throw new InvalidRequestMethod($this->requestInfo->getMethod());
     }
 }
Example #3
0
 /**
  * @param ServesRequestInfo $requestInfo
  *
  * @throws \Fortuneglobe\IceHawk\Exceptions\MalformedRequestUri
  * @return \Fortuneglobe\IceHawk\Interfaces\ServesUriComponents
  */
 public function resolveUri(ServesRequestInfo $requestInfo)
 {
     $uri = $requestInfo->getUri();
     # Show server selection
     if ($uri == '/') {
         return new UriComponents('server', 'select', []);
     }
     # Show a specific server
     if (preg_match("#^/server/([0-9]+)/?\$#", $uri, $matches)) {
         return new UriComponents('server', 'show', ['serverKey' => $matches[1]]);
     }
     return parent::resolveUri($requestInfo);
 }
Example #4
0
 /**
  * @param ServesRequestInfo $requestInfo
  *
  * @throws MalformedRequestUri
  * @return ServesUriComponents
  */
 public function resolveUri(ServesRequestInfo $requestInfo)
 {
     $uri = $requestInfo->getUri();
     $pattern = "#^\\/([^\\/\\?\\#]+)\\/([^\\/\\?\\#]+)\\/?#";
     $matches = [];
     if (preg_match($pattern, $uri, $matches)) {
         $domain = strtolower($matches[1]);
         $demand = strtolower($matches[2]);
         return new UriComponents($domain, $demand, []);
     } else {
         throw new MalformedRequestUri($uri);
     }
 }
 public function rewrite(ServesRequestInfo $requestInfo)
 {
     return $this->rewriteUriBySimpleMap($requestInfo->getUri(), self::$simpleMap);
 }
Example #6
0
 /**
  * @param ServesUriComponents $uriComponents
  * @param ServesRequestData   $request
  *
  * @return HandlesDomainRequests
  */
 private function getDomainRequestHandler(ServesUriComponents $uriComponents, ServesRequestData $request)
 {
     $domainRequestHandlerBuilder = new DomainRequestHandlerBuilder($this->domainNamespace, $this->requestInfo->getMethod(), $uriComponents);
     return $domainRequestHandlerBuilder->buildDomainRequestHandler($request);
 }