adding header support.

This commit is contained in:
Taylor Otwell 2012-03-28 22:58:49 -05:00
parent 730808fb02
commit bcd3bd8591
1 changed files with 34 additions and 20 deletions

View File

@ -21,7 +21,7 @@ class Request {
* *
* @var string * @var string
*/ */
const spoofer = '__spoofer'; const spoofer = '_method';
/** /**
* Get the URI for the current request. * Get the URI for the current request.
@ -40,12 +40,36 @@ public static function uri()
*/ */
public static function method() public static function method()
{ {
if ($_SERVER['REQUEST_METHOD'] == 'HEAD') $method = static::foundation()->getMethod();
{
return 'GET'; return ($method == 'HEAD') ? 'GET' : $method;
} }
return (static::spoofed()) ? $_POST[Request::spoofer] : $_SERVER['REQUEST_METHOD']; /**
* Get a header from the request.
*
* <code>
* // Get a header from the request
* $referer = Request::header('referer');
* </code>
*
* @param string $key
* @param mixed $default
* @return mixed
*/
public static function header($key, $default = null)
{
return array_get(static::foundation()->headers->all(), $key, $default);
}
/**
* Get all of the HTTP request headers.
*
* @return array
*/
public static function headers()
{
return static::foundation()->headers->all();
} }
/** /**
@ -57,7 +81,7 @@ public static function method()
*/ */
public static function server($key = null, $default = null) public static function server($key = null, $default = null)
{ {
return array_get($_SERVER, strtoupper($key), $default); return array_get(static::foundation()->server->all(), $key, $default);
} }
/** /**
@ -67,7 +91,7 @@ public static function server($key = null, $default = null)
*/ */
public static function spoofed() public static function spoofed()
{ {
return is_array($_POST) and array_key_exists(Request::spoofer, $_POST); return ! is_null(static::foundation()->get(Request::spoofer));
} }
/** /**
@ -81,16 +105,6 @@ public static function ip($default = '0.0.0.0')
return value(static::foundation()->getClientIp(), $default); return value(static::foundation()->getClientIp(), $default);
} }
/**
* Get the HTTP protocol for the request.
*
* @return string
*/
public static function protocol()
{
return array_get($_SERVER, 'SERVER_PROTOCOL', 'HTTP/1.1');
}
/** /**
* Get the list of acceptable content types for the request. * Get the list of acceptable content types for the request.
* *
@ -150,7 +164,7 @@ public static function ajax()
*/ */
public static function referrer() public static function referrer()
{ {
return array_get($_SERVER, 'HTTP_REFERER'); return static::foundation()->headers->get('referer');
} }
/** /**
@ -170,7 +184,7 @@ public static function cli()
*/ */
public static function env() public static function env()
{ {
if (isset($_SERVER['LARAVEL_ENV'])) return $_SERVER['LARAVEL_ENV']; return static::foundation()->server->get('LARAVEL_ENV');
} }
/** /**