diff --git a/src/HttpRequest.php b/src/HttpRequest.php index a722b5a..fd0c72d 100644 --- a/src/HttpRequest.php +++ b/src/HttpRequest.php @@ -111,6 +111,16 @@ public function getUri() return $this->getServerVariable('REQUEST_URI'); } + /** + * Return just the path + * + * @return string + */ + public function getPath() + { + return strtok($this->getServerVariable('REQUEST_URI'), '?'); + } + /** * Which request method was used to access the page; * i.e. 'GET', 'HEAD', 'POST', 'PUT'. diff --git a/test/Unit/HttpRequestTest.php b/test/Unit/HttpRequestTest.php index 2348979..0a76b4b 100644 --- a/test/Unit/HttpRequestTest.php +++ b/test/Unit/HttpRequestTest.php @@ -164,6 +164,15 @@ public function testGetMethodException() public function testGetUri() { + $server = ['REQUEST_URI' => '/test?abc=def']; + + $request = new HttpRequest([], [], [], [], $server); + + $this->assertEquals( + $request->getUri(), + $server['REQUEST_URI'] + ); + $server = ['REQUEST_URI' => '/test']; $request = new HttpRequest([], [], [], [], $server); @@ -183,6 +192,27 @@ public function testGetUriException() $request->getUri(); } + public function testGetPath() + { + $server = ['REQUEST_URI' => '/test?abc=def']; + + $request = new HttpRequest([], [], [], [], $server); + + $this->assertEquals( + $request->getPath(), + '/test' + ); + + $server = ['REQUEST_URI' => '/test']; + + $request = new HttpRequest([], [], [], [], $server); + + $this->assertEquals( + $request->getPath(), + '/test' + ); + } + public function testGetHttpAccept() { $server = ['HTTP_ACCEPT' => 'Accept: audio/*; q=0.2, audio/basic'];