6 declare(strict_types=1);
22 public function getPathInfo(
string $requestUri,
string $baseUrl) : string
24 if ($requestUri ===
'/') {
28 $requestUri = $this->removeRepeatedSlashes($requestUri);
29 $parsedRequestUri = explode(
'?', $requestUri, 2);
30 $pathInfo = (string)substr(current($parsedRequestUri), (int)strlen($baseUrl));
32 if ($this->isNoRouteUri($baseUrl, $pathInfo)) {
46 $requestUri = $this->removeRepeatedSlashes($requestUri);
47 $parsedRequestUri = explode(
'?', $requestUri, 2);
48 $queryString = !isset($parsedRequestUri[1]) ?
'' :
'?' . $parsedRequestUri[1];
58 private function removeRepeatedSlashes($pathInfo) : string
60 $firstChar = (string)substr($pathInfo, 0, 1);
61 if ($firstChar ==
'/') {
62 $pathInfo =
'/' . ltrim($pathInfo,
'/');
75 private function isNoRouteUri($baseUrl, $pathInfo) : bool
77 $firstChar = (string)substr($pathInfo, 0, 1);
78 return $baseUrl !==
'' && !in_array($firstChar, [
'/',
'']);
getQueryString(string $requestUri)
getPathInfo(string $requestUri, string $baseUrl)