/**
  * Returns the url path leading up to the current script.
  * Used to make the webapp portable to other locations.
  *
  * @return string uri
  */
 public function getBaseUri(Request $request)
 {
     // Get URI from URL
     $uri = $request->getUri()->getPath();
     // Detect and remove subfolder from URI
     $server = $request->getServerParams();
     $scriptName = $server['SCRIPT_NAME'];
     if (isset($scriptName)) {
         $dirname = dirname($scriptName);
         $dirname = dirname($dirname);
         $len = strlen($dirname);
         if ($len > 0 && $dirname != '/') {
             $uri = substr($uri, $len);
         }
     }
     return $uri;
 }
Beispiel #2
0
 /**
  * @return mixed|null
  */
 public function getRoute()
 {
     $this->_routeMap->sortRoutes();
     foreach ($this->_routeMap as $route) {
         if ($this->_request->getMethod() !== $route->getRequestMethod()) {
             continue;
         }
         $route->replaceTokens();
         if (preg_match(sprintf("#^%s\$#i", $route->getPattern()), $this->_request->getUri()->getPath(), $matches)) {
             $this->_request = $this->_request->withAttribute('match', $route->getPattern());
             foreach ($matches as $key => $value) {
                 if (!is_int($key)) {
                     $this->_request = $this->_request->withAttribute($key, $value);
                 }
             }
             return $route;
         }
     }
     return null;
 }
 /**
  * Create
  *
  * @return Request Request
  */
 public static function fromRequest(ServerRequest $request)
 {
     return new HttpMessages_CraftRequest($request->getServerParams(), $request->getUploadedFiles(), $request->getUri(), $request->getMethod(), $request->getBody(), $request->getHeaders(), $request->getCookieParams(), $request->getQueryParams(), $request->getParsedBody(), $request->getProtocolVersion());
 }