Manual:Architectural modules/Cache/fr

Responsabilités
Le module cache est chargé de fournir les techniques de mises en cache pour optimiser les performances de MediaWiki. La mise en cache des objets et du web sont tous deux supportés par le logiciel MediaWiki. La mise en cache des objets range les données et les objets seuls, lorsqu'ils sont souvent appelés et qu'ils nécessitent que des ressources soient générées. MediaWiki range en cache d'innombrables objets dont quelques uns sont présentés ci-dessous :


 * Utilisateur
 * Sortie de l'analyseur
 * Tableau de données de l'image (version, taille, largeur, hauteur, métadonnées etc.)
 * Wikicode après le prétraitement xml
 * Texte de la version
 * Différences des versions

La mise en cache du web représente le stockage des pages HTML entières. Pour prendre en charge la mise en cache du web, MediaWiki fournit l'intégration avec le serveur de proxy de Squid et l'accélérateur Varnish. Il les notifie quand une page doit être purgée du cache et être regénérée.



Informations d'implémentation


Mise en cache des objets
Article principal : Cache des objets.

MediaWiki prend en charge l'enregistrement du cache des objets à différents endroits, par exemple avec un système de fichiers, dans la base de données, ou sur un système externe tel que memcached. Le mode de stockage est définit par la variable globale de. En plus, les types de cache pour les messages et l'analyseur syntaxique peuvent être spécifiés en initialisant et. La super-classe de tous les types de caches est, elle fournit l'interface pour de telles méthodes et pour la récupération d'un élément du cache, son ajout, sa suppression etc. Toutes les implémentations spécifiques de la mise en cache héritent de cette classe, comme le montre la figure Options prises en charge pour la mise en cache. Ainsi par exemple, fournit la mise en cache des objets en utilisant la base de données SQL et  réalise cela en utilisant l'accélérateur APC de PHP.

est la variable globale pour accéder au cache principal. Elle est initialisée à partir de en appelant. Cette initialisation renvoie un objet spécifique; par exemple dans le cas de, elle renverra un. Puis à chaque fois que cela est nécessaire chaque objet peut être stocké en appelant (en fournissant la clé et la valeur) ou récupéré en appelant  (en fournissant la clé).

La génération de la clé pour enregistrer dans le cache possède certaines règles communes. Il commence toujours avec le nom de la base de données et il est suivi par la spécification du type de l'objet mis en cache. Des exemples de telles clés sont montrés dans la table des clés de Cache. La partie terminale des clés varie. Par exemple avec l'objet utilisateur, il es composé de l'ID de l'utilisateur et pour l'objet fichier, ce sera le code de hachage md5 de son nom. La génération de la clé pour le ParserOutput est expliquée dans la documentation du module Parser.

A par le stockage des objets et des données via la mise en cache 'centralisée' mentionnée par la variable, MediaWiki implémente de lui-même la mise en cache de types supplémentaires. Par exemple, ou.

est utilisé pour mettre en cache les objets titre avec leur ID, s'ils sont liés à partir d'une source particulière. Par exemple, un article peut avoir des liens avec d'autres articles, utiliser des modèles, des catégories, avoir sa page de discussion etc. Tous ces liens seront rangés dans un objet et récupérés de là quand nécessaire.

implémente la mise en cache des pages HTML entières dans le système des fichiers. Si est mis à , les pages peuvent être mises en cache sur le serveur et distribuées à la demande aux utilisateurs.

représente un objet avec le contenu en cache des fichiers de traductions. MediaWiki utilise de tels messages dans chaque partie de l'interface en rapport avec l'utilisateur. Par exemple la 'confidentialité' (privacy) peut valoir 'Privacy policy' en anglais et 'Politique de protection des données' en français. contient ce type de messages pour les langues qui ont été chargées, et de cette manière ils peuvent être facilement accédés lors de la génération des pages HTML personnalisées.



Cache du web
Pour fournir l'intégration avec Squid ou Varnish, MediaWiki implémente la notification de purge. La classe responsable de la purge des URLs Squid à qui on a donné un ou plusieurs titres est. Lorsqu'un cache de page HTML doit être invalidé une instance de est créée et la méthode  est appliquée dessus.

Vous pouvez voir un aperçu des différents types de mises en cache du module Cache sur la figure Types de cache dans MediaWiki.



Cache de l'analyseur syntaxique
Voir le Cache de l'analyseur.