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. To support web caching MediaWiki provides integration with the Squid proxy server and Varnish accelerator. It notifies them, when a page should be purged from the cache and regenerated.



Informations d'implémentation


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

MediaWiki supports object caching storage in many places, for example, on a file system, in the database or in an external system like 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. Further on whenever necessary every object can be stored by calling (providing key and value) and retrieved by calling  (providing key).

La génération de la clé pour enregistrer dans le cache possède certaines règles communes. It always starts with the name of the database and follows by specification of the type of object that is being cached. Des exemples de telles clés sont montrés dans la table des clés de Cache. La partie terminale des clés varie. For example, for user object it will be the user's id and for file object it will be the md5 hash of its name. La génération de la clé pour le ParserOutput est expliquée dans la documentation du module Parser.

Apart from storing objects and data through 'central' caching set up by variable, MediaWiki implements itself additional types of caching. 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. For instance, a message 'privacy' would have value 'Privacy policy' for English and 'Politica de proteccion de datos' for Spanish language. 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.