Phly\Conduit\Next::resetPath PHP Method

resetPath() private method

Reset the path, if a segment was previously stripped
private resetPath ( Request $request ) : Request
$request Phly\Conduit\Http\Request
return Phly\Conduit\Http\Request
    private function resetPath(Http\Request $request)
    {
        if (!$this->removed) {
            return $request;
        }
        $uri = $request->getUri();
        $path = $uri->getPath();
        if (strlen($path) >= strlen($this->removed) && 0 === strpos($path, $this->removed)) {
            $path = str_replace($this->removed, '', $path);
        }
        $resetPath = $this->removed . $path;
        // Strip trailing slash if current path does not contain it and
        // original path did not have it
        if ('/' === $path && '/' !== substr($this->removed, -1)) {
            $resetPath = rtrim($resetPath, '/');
        }
        // Normalize to remove double-slashes
        $resetPath = str_replace('//', '/', $resetPath);
        $new = $uri->withPath($resetPath);
        $this->removed = '';
        return $request->withUri($new);
    }