Rev 287 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?phpclass ServiceCacheSqlite extends RestService {public function consulter($ressources, $parametres) {// Redéfinition ici mais peut être configuré depuis le fichier config.ini$options = array('stockage_mode' => Cache::STOCKAGE_MODE_SQLITE,'stockage_chemin' => Fichier::getDossierTmp().DS.'cache.sqlite','controle_ecriture' => false,'mise_en_cache' => true,'cache_id_prefixe' => null,'serialisation_auto' => false,'nettoyage_auto' => 10,'duree_de_vie' => 3600,);$cache = new Cache($options);$id = 'monCache'; // id de cache de "ce que l'on veut cacher"$id01 = $id.'01';$id02 = $id.'02';$id03 = $id.'03';if (!($donnees = $cache->charger($id01))) {$donnees = 'Mise en cache à : '.strftime('%A %d %B %Y à %H:%M:%S', time()).'<br/>';for ($i = 0; $i < 100000; $i++) {$donnees .= $i;}$cache->sauver($donnees, $id01);$cache->sauver($donnees, $id02, array('tagTest01'));$cache->sauver($donnees, $id03, array('tagTest01','tagTest02', 'tagTest03'));}// Affichage des donnéesecho $donnees.'<br/>';// Affichage des ids du cacheecho 'Ids des enregistrements en cache : <pre>'.print_r($cache->getIds(), true).'</pre>';// Affichage des ids du cacheecho 'Tags des enregistrements en cache : <pre>'.print_r($cache->getTags(), true).'</pre>';// Affichage des ids du cache pour un tag donnée$tag01 = 'tagTest01';$tag02 = 'tagTest02';$tag03 = 'tagTest03';echo "Ids avec les tag '$tag02, $tag03' : ".'<pre>'.print_r($cache->getIdsAvecLesTags(array($tag02, $tag03)), true).'</pre>';echo "Ids possédant le tag '$tag01' : ".'<pre>'.print_r($cache->getIdsAvecUnTag(array($tag01)), true).'</pre>';echo "Ids sans les tag '$tag01, $tag02' : ".'<pre>'.print_r($cache->getIdsSansLesTags(array($tag01, $tag02)), true).'</pre>';// Test du test de l'existence du cache$id_test = $id01;echo ($cache->tester($id_test) ? "OK : le cache '$id_test' existe" : "KO : le cache '$id_test' devrait exister").'<br/>';// Affichage du pourcentage de remplissageecho 'Pourcentage de remplissage : '.$cache->getPourcentageRemplissage().'%<br/>';// Affichage des métadonnées$meta03 = $cache->getMetadonnees($id03);echo "Métadonnées du cache '$id03' : <pre>".print_r($meta03, true).'</pre>';$meta01 = $cache->getMetadonnees($id_test);echo "Métadonnées du cache '$id_test' : <pre>".print_r($meta01, true).'</pre>';// Nettoyage & suppressionecho "Temps avant suppression du cache : ".(time() - $meta01['expiration']).'s<br/>';if ((time() - $meta01['expiration']) >= -30) {// Suppressions$cache->supprimer($id_test);echo (!$cache->tester($id_test) ? "OK : le cache '$id_test' a bien été supprimé" : "KO : le cache '$id_test' n'a pas été supprimé").'<br/>';// Nettoyage$cache->nettoyer(Cache::NETTOYAGE_MODE_AVEC_LES_TAGS, array($tag02, $tag03));echo (!$cache->tester($id03) ? "OK : le cache '$id03' a bien été supprimé" : "KO : le cache '$id03' n'a pas été supprimé").'<br/>';$cache->nettoyer(Cache::NETTOYAGE_MODE_SANS_LES_TAGS, array($tag01));echo ($cache->tester($id02) ? "OK : le cache '$id02' n'a pas été supprimé" : "KO : le cache '$id02' a été supprimé").'<br/>';$cache->nettoyer(Cache::NETTOYAGE_MODE_EXPIRATION);echo ($cache->tester($id02) ? "OK : le cache '$id02' n'a pas été supprimé" : "KO : le cache '$id02' a été supprimé").'<br/>';$cache->nettoyer(Cache::NETTOYAGE_MODE_TOUS);echo (!$cache->tester($id01) ? "OK : le cache '$id02' a été supprimé" : "KO : le cache '$id02' n'a pas été supprimé").'<br/>';} else if ((time() - $meta01['expiration']) < -60) {// Test ajout d'une durée de vie supplémentaire$meta01 = $cache->getMetadonnees($id_test);echo "Durée de vie du cache '$id_test' : ".$meta01['expiration'].'<br/>';$cache->ajouterSupplementDureeDeVie($id_test, -3540);$meta02 = $cache->getMetadonnees($id_test);echo "Durée de vie du cache '$id_test' après ajout supplément de -3540s : ".$meta02['expiration'].' - diff. : '.($meta02['expiration'] - $meta01['expiration']).'<br/>';}}}?>