Commit 3d684136 authored by Taylor Otwell's avatar Taylor Otwell

Refactor the request class.

parent 3f35bb15
...@@ -27,6 +27,28 @@ class Request { ...@@ -27,6 +27,28 @@ class Request {
{ {
if ( ! is_null(static::$uri)) return static::$uri; if ( ! is_null(static::$uri)) return static::$uri;
$uri = static::raw_uri();
if (strpos($uri, $base = parse_url(Config::get('application.url'), PHP_URL_PATH)) === 0)
{
$uri = substr($uri, strlen($base));
}
if (strpos($uri, $index = '/index.php') === 0)
{
$uri = substr($uri, strlen($index));
}
return static::$uri = (($uri = trim($uri, '/')) == '') ? '/' : $uri;
}
/**
* Get the raw request URI from the $_SERVER array.
*
* @return string
*/
private static function raw_uri()
{
if (isset($_SERVER['PATH_INFO'])) if (isset($_SERVER['PATH_INFO']))
{ {
$uri = $_SERVER['PATH_INFO']; $uri = $_SERVER['PATH_INFO'];
...@@ -45,17 +67,7 @@ class Request { ...@@ -45,17 +67,7 @@ class Request {
throw new \Exception("Malformed request URI. Request terminated."); throw new \Exception("Malformed request URI. Request terminated.");
} }
if (strpos($uri, $base = parse_url(Config::get('application.url'), PHP_URL_PATH)) === 0) return $uri;
{
$uri = substr($uri, strlen($base));
}
if (strpos($uri, $index = '/index.php') === 0)
{
$uri = substr($uri, strlen($index));
}
return static::$uri = (($uri = trim($uri, '/')) == '') ? '/' : $uri;
} }
/** /**
...@@ -148,7 +160,6 @@ class Request { ...@@ -148,7 +160,6 @@ class Request {
*/ */
public static function __callStatic($method, $parameters) public static function __callStatic($method, $parameters)
{ {
// Dynamically determine if a given route is handling the request.
if (strpos($method, 'route_is_') === 0) if (strpos($method, 'route_is_') === 0)
{ {
return static::route_is(substr($method, 9)); return static::route_is(substr($method, 9));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment