Skip to content

Instantly share code, notes, and snippets.

@baptistedonaux
Last active December 31, 2015 18:29
Show Gist options
  • Save baptistedonaux/8027420 to your computer and use it in GitHub Desktop.
Save baptistedonaux/8027420 to your computer and use it in GitHub Desktop.
<?php
function execute ($sql_query, $id = null, $delay = 3600) {
//On déclare une instance de cache
$cacheDriver = new \Doctrine\Common\Cache\XcacheCache();
$results = null;
//Si un ID a été saisie et que le système de cache contient des données pour un ID "x"
if ($id != null && $cacheDriver->contains($id)) {
//Alors on prend les données en cache pour un ID "x"
$results = $cacheDriver->fetch($id);
}
//Si on n'a pas de donnée, dans le cas ou la donnée mise en cache soit égale à null
if ($results == null) {
//On récupère les données
$results = $this->container->get("doctrine")->getManager()->getRepository("NamespaceNameBundle:Entity")->findAll();
//Si on a un ID de mise en cache
if ($id != null) {
//On sauvegarde les données pour un ID x et pour un délai y
$cacheDriver->save($id, $results, intval($delay));
}
}
//On retourne les résultats en limitant les requêtes futures
return $results;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment