/tags/v0.3-aleaume/exemple/services/modules/0.1/ServiceCacheSqlite.php |
---|
New file |
0,0 → 1,88 |
<?php |
class 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ées |
echo $donnees.'<br/>'; |
// Affichage des ids du cache |
echo 'Ids des enregistrements en cache : <pre>'.print_r($cache->getIds(), true).'</pre>'; |
// Affichage des ids du cache |
echo '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 remplissage |
echo '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 & suppression |
echo "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/>'; |
} |
} |
} |
?> |
/tags/v0.3-aleaume/exemple/services/modules/0.1/MonService.php |
---|
New file |
0,0 → 1,8 |
<?php |
class MonService extends RestService { |
public function consulter($ressources, $parametres) { |
echo "ok"; |
} |
} |
?> |
/tags/v0.3-aleaume/exemple/services/modules/0.1/ServiceCacheFichier.php |
---|
New file |
0,0 → 1,99 |
<?php |
class ServiceCacheFichier 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_FICHIER, |
'stockage_chemin' => Fichier::getDossierTmp(), |
'controle_ecriture' => false, |
'mise_en_cache' => true, |
'cache_id_prefixe' => null, |
'serialisation_auto' => false, |
'nettoyage_auto' => 10, |
'duree_de_vie' => 3600, |
); |
// Redéfinition ici mais peut être configuré depuis le fichier config.ini |
$options_stockage = array( |
'fichier_verrou' => false, |
'controle_lecture' => false, |
'controle_lecture_type' => 'crc32', |
'dossier_niveau' => 2, |
'dossier_umask' => 0707, |
'fichier_prefixe' => 'tbf', |
'fichier_umask' => 0606, |
'metadonnees_max_taille' => 100 |
); |
$cache = new Cache($options, $options_stockage); |
$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ées |
echo $donnees.'<br/>'; |
// Affichage des ids du cache |
echo 'Ids des enregistrements en cache : <pre>'.print_r($cache->getIds(), true).'</pre>'; |
// Affichage des ids du cache |
echo '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 remplissage |
echo '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 & suppression |
echo "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/>'; |
} |
} |
} |
?> |
/tags/v0.3-aleaume/exemple/services/modules/0.1/ServiceCacheSimple.php |
---|
New file |
0,0 → 1,28 |
<?php |
class ServiceCacheSimple extends RestService { |
public function consulter($ressources, $parametres) { |
// Redéfinition ici mais peut être configuré depuis le fichier config.ini |
$options = array( |
'mise_en_cache' => true, |
'stockage_mode' => Cache::STOCKAGE_MODE_SIMPLE, |
//'stockage_chemin' => 'indiquer le chemin du dossier où mettre le cache par défaut utilise Fichier::getDossierTmp()', |
'duree_de_vie' => 10 |
); |
// Le cache Simple utilise le design pattern fabrique pour être généré. |
$cache = Cache::fabriquer(Cache::STOCKAGE_MODE_SIMPLE, $options); |
$id = 'monCache1'; // id de cache de "ce que l'on veut cacher" |
if (!($donnees = $cache->charger($id))) { |
$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, $id); |
} |
// Affichage des données |
echo '<hr/>'.$donnees.'<hr/><p>Hors cache : '.strftime('%A %d %B %Y à %H:%M:%S').'</p>'; |
} |
} |
?> |