<?php namespace System; class Input { /** * The input data for the request. * * @var array */ public static $input; /** * Get all of the input data for the request. * * This method returns a merged array containing Input::get and Input::file. * * @return array */ public static function all() { return array_merge(static::get(), static::file()); } /** * Determine if the input data contains an item. * * @param string $key * @return bool */ public static function has($key) { return ( ! is_null(static::get($key)) and trim((string) static::get($key)) !== ''); } /** * Get an item from the input data. * * @param string $key * @param mixed $default * @return string */ public static function get($key = null, $default = null) { if (is_null(static::$input)) static::hydrate(); return Arr::get(static::$input, $key, $default); } /** * Determine if the old input data contains an item. * * @param string $key * @return bool */ public static function had($key) { return ( ! is_null(static::old($key)) and trim((string) static::old($key)) !== ''); } /** * Get input data from the previous request. * * @param string $key * @param mixed $default * @return string */ public static function old($key = null, $default = null) { if (Config::get('session.driver') == '') { throw new \Exception("Sessions must be enabled to retrieve old input data."); } return Arr::get(Session::get('laravel_old_input', array()), $key, $default); } /** * Get an item from the uploaded file data. * * @param string $key * @param mixed $default * @return array */ public static function file($key = null, $default = null) { return Arr::get($_FILES, $key, $default); } /** * Hydrate the input data for the request. * * @return void */ public static function hydrate() { switch (Request::method()) { case 'GET': static::$input =& $_GET; break; case 'POST': static::$input =& $_POST; break; case 'PUT': case 'DELETE': if (Request::spoofed()) { static::$input =& $_POST; } else { parse_str(file_get_contents('php://input'), static::$input); } } } }