get($key))) { return is_callable($default) ? call_user_func($default) : $default; } return $item; } /** * Get an item from the cache. If the item doesn't exist in the cache, store * the default value in the cache and return it. * * @param string $key * @param mixed $default * @param int $minutes * @param string $driver * @return mixed */ public static function remember($key, $default, $minutes, $driver = null) { if ( ! is_null($item = static::get($key, null, $driver))) return $item; $default = is_callable($default) ? call_user_func($default) : $default; static::driver($driver)->put($key, $default, $minutes); return $default; } /** * Pass all other methods to the default driver. * * Passing method calls to the driver instance provides a better API for the * developer. For instance, instead of saying Cache::driver()->foo(), we can * just say Cache::foo(). */ public static function __callStatic($method, $parameters) { return call_user_func_array(array(static::driver(), $method), $parameters); } }