/** * @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); }
/** * @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()); } }
/** * @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); }
/** * @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); }
/** * @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); }