Subversion Repositories Applications.framework

Rev

Rev 281 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 281 Rev 287
1
<?php 
1
<?php 
2
class ServiceCacheSqlite extends Service {
2
class ServiceCacheSqlite extends RestService {
3
	
3
	
4
	public function consulter($ressources, $parametres) {
4
	public function consulter($ressources, $parametres) {
5
		// Redéfinition ici mais peut être configuré depuis le fichier config.ini
5
		// Redéfinition ici mais peut être configuré depuis le fichier config.ini
6
		$options = array(
6
		$options = array(
7
			'stockage_mode'				 => Cache::STOCKAGE_MODE_SQLITE,
7
			'stockage_mode'				 => Cache::STOCKAGE_MODE_SQLITE,
8
			'stockage_chemin'				 => Fichier::getDossierTmp().DS.'cache.sqlite',
8
			'stockage_chemin'				 => Fichier::getDossierTmp().DS.'cache.sqlite',
9
			'controle_ecriture'			 => false,
9
			'controle_ecriture'			 => false,
10
			'mise_en_cache'		  		 => true,
10
			'mise_en_cache'		  		 => true,
11
			'cache_id_prefixe'		  		 => null,
11
			'cache_id_prefixe'		  		 => null,
12
			'serialisation_auto'		  	 => false,
12
			'serialisation_auto'		  	 => false,
13
			'nettoyage_auto'				 => 10,
13
			'nettoyage_auto'				 => 10,
14
			'duree_de_vie'			 		 => 3600,
14
			'duree_de_vie'			 		 => 3600,
15
		);
15
		);
16
		$cache = new Cache($options);
16
		$cache = new Cache($options);
17
		
17
		
18
		$id = 'monCache'; // id de cache de "ce que l'on veut cacher"
18
		$id = 'monCache'; // id de cache de "ce que l'on veut cacher"
19
		$id01 = $id.'01';
19
		$id01 = $id.'01';
20
		$id02 = $id.'02';
20
		$id02 = $id.'02';
21
		$id03 = $id.'03';
21
		$id03 = $id.'03';
22
		if (!($donnees = $cache->charger($id01))) {
22
		if (!($donnees = $cache->charger($id01))) {
23
			$donnees = 'Mise en cache à : '.strftime('%A %d %B %Y à %H:%M:%S', time()).'<br/>';
23
			$donnees = 'Mise en cache à : '.strftime('%A %d %B %Y à %H:%M:%S', time()).'<br/>';
24
			for ($i = 0; $i < 100000; $i++) {
24
			for ($i = 0; $i < 100000; $i++) {
25
				$donnees .= $i;
25
				$donnees .= $i;
26
			}
26
			}
27
			$cache->sauver($donnees, $id01);
27
			$cache->sauver($donnees, $id01);
28
			$cache->sauver($donnees, $id02, array('tagTest01'));
28
			$cache->sauver($donnees, $id02, array('tagTest01'));
29
			$cache->sauver($donnees, $id03, array('tagTest01','tagTest02', 'tagTest03'));
29
			$cache->sauver($donnees, $id03, array('tagTest01','tagTest02', 'tagTest03'));
30
		}
30
		}
31
		// Affichage des données
31
		// Affichage des données
32
		echo $donnees.'<br/>';
32
		echo $donnees.'<br/>';
33
		
33
		
34
		// Affichage des ids du cache
34
		// Affichage des ids du cache
35
		echo 'Ids des enregistrements en cache : <pre>'.print_r($cache->getIds(), true).'</pre>';
35
		echo 'Ids des enregistrements en cache : <pre>'.print_r($cache->getIds(), true).'</pre>';
36
		
36
		
37
		// Affichage des ids du cache
37
		// Affichage des ids du cache
38
		echo 'Tags des enregistrements en cache : <pre>'.print_r($cache->getTags(), true).'</pre>';
38
		echo 'Tags des enregistrements en cache : <pre>'.print_r($cache->getTags(), true).'</pre>';
39
		
39
		
40
		// Affichage des ids du cache pour un tag donnée
40
		// Affichage des ids du cache pour un tag donnée
41
		$tag01 = 'tagTest01';
41
		$tag01 = 'tagTest01';
42
		$tag02 = 'tagTest02';
42
		$tag02 = 'tagTest02';
43
		$tag03 = 'tagTest03';
43
		$tag03 = 'tagTest03';
44
		echo "Ids avec les tag '$tag02, $tag03' : ".'<pre>'.print_r($cache->getIdsAvecLesTags(array($tag02, $tag03)), true).'</pre>';
44
		echo "Ids avec les tag '$tag02, $tag03' : ".'<pre>'.print_r($cache->getIdsAvecLesTags(array($tag02, $tag03)), true).'</pre>';
45
		echo "Ids possédant le tag '$tag01' : ".'<pre>'.print_r($cache->getIdsAvecUnTag(array($tag01)), true).'</pre>';
45
		echo "Ids possédant le tag '$tag01' : ".'<pre>'.print_r($cache->getIdsAvecUnTag(array($tag01)), true).'</pre>';
46
		echo "Ids sans les tag '$tag01, $tag02' : ".'<pre>'.print_r($cache->getIdsSansLesTags(array($tag01, $tag02)), true).'</pre>';
46
		echo "Ids sans les tag '$tag01, $tag02' : ".'<pre>'.print_r($cache->getIdsSansLesTags(array($tag01, $tag02)), true).'</pre>';
47
		
47
		
48
		// Test du test de l'existence du cache
48
		// Test du test de l'existence du cache
49
		$id_test = $id01;
49
		$id_test = $id01;
50
		echo ($cache->tester($id_test) ? "OK : le cache '$id_test' existe" : "KO : le cache '$id_test' devrait exister").'<br/>';
50
		echo ($cache->tester($id_test) ? "OK : le cache '$id_test' existe" : "KO : le cache '$id_test' devrait exister").'<br/>';
51
		
51
		
52
		// Affichage du pourcentage de remplissage
52
		// Affichage du pourcentage de remplissage
53
		echo 'Pourcentage de remplissage : '.$cache->getPourcentageRemplissage().'%<br/>';
53
		echo 'Pourcentage de remplissage : '.$cache->getPourcentageRemplissage().'%<br/>';
54
		
54
		
55
		// Affichage des métadonnées
55
		// Affichage des métadonnées
56
		$meta03 = $cache->getMetadonnees($id03);
56
		$meta03 = $cache->getMetadonnees($id03);
57
		echo "Métadonnées du cache '$id03' : <pre>".print_r($meta03, true).'</pre>';
57
		echo "Métadonnées du cache '$id03' : <pre>".print_r($meta03, true).'</pre>';
58
		$meta01 = $cache->getMetadonnees($id_test);
58
		$meta01 = $cache->getMetadonnees($id_test);
59
		echo "Métadonnées du cache '$id_test' : <pre>".print_r($meta01, true).'</pre>';
59
		echo "Métadonnées du cache '$id_test' : <pre>".print_r($meta01, true).'</pre>';
60
		
60
		
61
		// Nettoyage & suppression
61
		// Nettoyage & suppression
62
		echo "Temps avant suppression du cache : ".(time() - $meta01['expiration']).'s<br/>';
62
		echo "Temps avant suppression du cache : ".(time() - $meta01['expiration']).'s<br/>';
63
		if ((time() - $meta01['expiration']) >= -30) {
63
		if ((time() - $meta01['expiration']) >= -30) {
64
			// Suppressions
64
			// Suppressions
65
			$cache->supprimer($id_test);
65
			$cache->supprimer($id_test);
66
			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/>';
66
			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/>';
67
			
67
			
68
			// Nettoyage
68
			// Nettoyage
69
			$cache->nettoyer(Cache::NETTOYAGE_MODE_AVEC_LES_TAGS, array($tag02, $tag03));
69
			$cache->nettoyer(Cache::NETTOYAGE_MODE_AVEC_LES_TAGS, array($tag02, $tag03));
70
			echo (!$cache->tester($id03) ? "OK : le cache '$id03' a bien été supprimé" : "KO : le cache '$id03' n'a pas été supprimé").'<br/>';
70
			echo (!$cache->tester($id03) ? "OK : le cache '$id03' a bien été supprimé" : "KO : le cache '$id03' n'a pas été supprimé").'<br/>';
71
			$cache->nettoyer(Cache::NETTOYAGE_MODE_SANS_LES_TAGS, array($tag01));
71
			$cache->nettoyer(Cache::NETTOYAGE_MODE_SANS_LES_TAGS, array($tag01));
72
			echo ($cache->tester($id02) ? "OK : le cache '$id02' n'a pas été supprimé" : "KO : le cache '$id02' a été supprimé").'<br/>';
72
			echo ($cache->tester($id02) ? "OK : le cache '$id02' n'a pas été supprimé" : "KO : le cache '$id02' a été supprimé").'<br/>';
73
			$cache->nettoyer(Cache::NETTOYAGE_MODE_EXPIRATION);
73
			$cache->nettoyer(Cache::NETTOYAGE_MODE_EXPIRATION);
74
			echo ($cache->tester($id02) ? "OK : le cache '$id02' n'a pas été supprimé" : "KO : le cache '$id02' a été supprimé").'<br/>';
74
			echo ($cache->tester($id02) ? "OK : le cache '$id02' n'a pas été supprimé" : "KO : le cache '$id02' a été supprimé").'<br/>';
75
			$cache->nettoyer(Cache::NETTOYAGE_MODE_TOUS);
75
			$cache->nettoyer(Cache::NETTOYAGE_MODE_TOUS);
76
			echo (!$cache->tester($id01) ? "OK : le cache '$id02' a été supprimé" : "KO : le cache '$id02' n'a pas été supprimé").'<br/>';
76
			echo (!$cache->tester($id01) ? "OK : le cache '$id02' a été supprimé" : "KO : le cache '$id02' n'a pas été supprimé").'<br/>';
77
		} else if ((time() - $meta01['expiration']) < -60) {
77
		} else if ((time() - $meta01['expiration']) < -60) {
78
			// Test ajout d'une durée de vie supplémentaire
78
			// Test ajout d'une durée de vie supplémentaire
79
			$meta01 = $cache->getMetadonnees($id_test);
79
			$meta01 = $cache->getMetadonnees($id_test);
80
			echo "Durée de vie du cache '$id_test' : ".$meta01['expiration'].'<br/>';
80
			echo "Durée de vie du cache '$id_test' : ".$meta01['expiration'].'<br/>';
81
			$cache->ajouterSupplementDureeDeVie($id_test, -3540);
81
			$cache->ajouterSupplementDureeDeVie($id_test, -3540);
82
			$meta02 = $cache->getMetadonnees($id_test);
82
			$meta02 = $cache->getMetadonnees($id_test);
83
			echo "Durée de vie du cache '$id_test' après ajout supplément de -3540s : ".$meta02['expiration'].
83
			echo "Durée de vie du cache '$id_test' après ajout supplément de -3540s : ".$meta02['expiration'].
84
				' - diff. : '.($meta02['expiration'] - $meta01['expiration']).'<br/>';
84
				' - diff. : '.($meta02['expiration'] - $meta01['expiration']).'<br/>';
85
		}
85
		}
86
	}    
86
	}    
87
}
87
}
88
?>
88
?>