La gestion du cache

Fonctionnement

Le système de mise en cache permet de réduire significativement les temps de réponses. Celui-ci se compose en plusieurs types. Chaque type permettant de mettre en cache un certain type de traitement.

Le cache Pxxo s'utilise idéalement et automatiquement avec l'extension APC. Cependant si on le souhaite on peut utiliser un stockage sur disque.

Par defaut le cache est désactivé, cependant on peut, si on n'a pas peur d'aller vite, l'activer sans conséquence sur l'exécution du code.

Pxxo permet une exécution en cascade d'objet en objet. L'activation du cache dans l'objet le plus haut de la hiérarchie propagera le cache dans tout les sous-objets. On peut donc définir un réglage générique, mais on pourra également faire un réglage plus fort du cache dans chaque objet.

Remarques :

Le décorateur Pxxo_Widget_Decorator_Debugger contient une interface permettant de contrôler le cache Pxxo.

Type de Cache

Il existe plusieurs type de cache dans Pxxo chacun de ces types est défini par plusieurs constantes :

Constantes Description
P_C_BASIC Evite à Pxxo de deviner systématiquement certains informations (par ex :nom de fichiers ou de répertoire
P_C_TEMPLATE
P_C_RESOURCE Evite à Pxxo de créer systématiquement des fichiers de ressources pré existant
P_C_XSLT Evite à Pxxo refaire des trandormation XML/XSL déjà réalisée
P_C_WIDGET Evite à Pxxo de réexcuter un widget complet
P_C_USER
P_C_WIDGET2 Evite à Pxxo de réexcuter un widget complet (variante)
P_C_HTTP Evite au navigateur de réinterpréter du contenu qui n'a pas changé

Par défaut le type de cache est le suivant :

P_C_BASIC | P_C_RESOURCE | P_C_TEMPLATE | P_C_USER

On peut modifier ce régalage avec la méthode setCacheLevel. Exemple :

 
$this->setCacheLevel(P_C_BASIC | P_C_RESOURCE | P_C_TEMPLATE | P_C_USER | P_C_HTTP);
 

Réglages

Les méthodes disponibles sur les composants pxxo sont :

  • enableCache() : Active le mécanisme de cache pour le widget et ses fils
  • disableCache() : Désactive le mécanisme de cache pour le widget et ses fils
  • setCacheLevel($level) : Permet de régler le niveau de cache
  • setCacheOptions($n) : Permet de régler finement son cache
  • addCacheID(…) : Tout les paramètres transmis à cette méthode serviront à calculer un identifiant discriminant pour la mise en route du cache. D'un appel sur l'autre, la valeur de ces variables permettra de savoir s'il s'agit d'un appel strictement identique (ne nécessitant pas une rééxécution) ou s'il s'agit d'un appel différent.

Exemple :

class truc {
    function __construct($a, $b) {
        $this->addCacheID($a, $b, $GLOBALS['truc']);
    }
}
fr/doc/pxxo/features/cache.txt · Dernière modification: 2008/04/10 15:27 par 193.54.109.8
 
 
Recent changes RSS feed Valid XHTML 1.0 Valid CSS Powered by PHP Driven by DokuWiki
©2003-2008 Pxxo