original_string: 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;
      }
code: 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;
      }
code_tokens: 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 ; }
docstring: 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
docstring_tokens: Provides the ability to easily do read - through caching .