public static function remember($key, $callable, $config = 'default')
    {
        $existing = self::read($key, $config);
        if ($existing !== false) {
            return $existing;
        }
        $results = call_user_func($callable);
        self::write($key, $results, $config);

        return $results;
    }
public static function remember($key, $callable, $config = 'default')
    {
        $existing = self::read($key, $config);
        if ($existing !== false) {
            return $existing;
        }
        $results = call_user_func($callable);
        self::write($key, $results, $config);

        return $results;
    }
public static function remember ( $ key , $ callable , $ config = 'default' ) { $ existing = self :: read ( $ key , $ config ) ; if ( $ existing !== false ) { return $ existing ; } $ results = call_user_func ( $ callable ) ; self :: write ( $ key , $ results , $ config ) ; return $ results ; }
Provides the ability to easily do read-through caching.

When called if the $key is not set in $config, the $callable function
will be invoked. The results will then be stored into the cache config
at key.

Examples:

Using a Closure to provide data, assume `$this` is a Table object:

```
$results = Cache::remember('all_articles', function () {
return $this->find('all');
});
```

@param string $key The cache key to read/store data at.
@param callable $callable The callable that provides data in the case when
the cache key is empty. Can be any callable type supported by your PHP.
@param string $config The cache configuration to use for this operation.
Defaults to default.
@return mixed If the key is found: the cached data, false if the data
missing/expired, or an error. If the key is not found: boolean of the
success of the write
Provides the ability to easily do read - through caching .