Les fonctions de gestion de cache de drupal sont :

  • cache_get : récupération d’un cache
  • cache_set : création d’un cache
  • clear_cache_all : suppression du cache

Drupal utilise plusieurs type de cache. Dans notre exemple, nous allons mettre en cache un flux web récupérer afin d’éviter de l’interroger à chaque besoin. Nous allons donc créer un cache avec le code suivant:

$variables = array();
$get_metar = cache_get('cache_metar', 'cache')->data;
if (empty($get_metar)) {
  $citycountry = variable_get('city_country', 'Lyon,fr');
  $flux_metar = drupal_http_request('http://api.openweathermap.org/data/2.5/weather?q=' . $citycountry . '&units=metric');
  $get_metar = $flux_metar->data;
  cache_set('cache_metar', $get_metar, 'cache', CACHE_PERMANENT);
}
$metar = json_decode($get_metar);

Dans cette portion de code, la fonction cache_get récupère le cache “cache_metar” stocker dans le cache de type “cache”.

La fonction cache_get retourne une variable vide si le cache n’existe pas. Donc si la variable est empty, il faut interroger le flux. Une foix le flux récupéré, il suffit d’initialiser un cache “cache_metar” de type cache permanent grâce à la fonction cache_set

Pour la suppression, la commande à utiliser est :

cache_clear_all('cache_metar','cache');

Et voielà, ce n’est pas très compliqué