Configuring the view cache -- Configuration du cache de vue (< 4.0)
Configuring the view cache -- Configuration du cache de vue (> 3.10)
Clearing the view cache -- Vider les caches de vues
Smart view cache cleaning -- Système pour vider les caches de vues
Pre-generation of view cache -- Pré-génération du cache de vue
Date de publication: le mardi 8 mai 2007 Ã 16h50
Dernière modification: par Pascal BOYER le lundi 6 septembre 2010 à 14h29
versions 3.9, 3.10 et 4.0
Caching is a widely used technique supposing that frequently used information is retained in a temporary storage area for rapid access. It is extremely effective when the original data is expensive (usually in terms of access time) to fetch or compute/generate relative to reading the cache. Once the data is stored in the cache, future use can be made by accessing the cached copy rather than re-fetching or re-computing the original data, so that the average access time is lower.
La mise en cache est une technique largement utilisée consistant à stocker temporairement des informations fréquemment demandées afin d'y accéder plus rapidement. Cette technique est extrêmement efficace lorsque rechercher ou calculer/générer les données originales coûtent cher (en temps d'accès) comparativement au temps de lecture du cache. Une fois les données stockées dans le cache, leur utilisation future peut se faire simplement par accès aux copies mises en cache plutôt qu'en re-cherchant ou re-calculant les données originales. On obtient ainsi un temps moyen d'accès aux informations plus faible.
eZ Publish includes a powerful caching mechanism that allows to improve system performance. This chapter describes a fundamental part of the cache systems in eZ Publish, called content view caching ("view caching" for short). This mechanism only works for view and pdf views of the content module.
eZ publish
intègre un puissant mécanisme de mise en cache permettant d'augmenter les performances du système. Ce chapitre décrit un des aspects fondamentaux des systèmes de cache de eZ publish
: la mise en cache des vues des contenus
(que l'on nommera plus simplement par la suite cache des vues
ou cache de vues
[1
]). Il est à noter que ce mécanisme ne fonctionne qu'avec les vues view
et pdf
du module content
.
Node view cache / Cache de vue d'un noeud
This subsection describes how the view caches are generated when the nodes are accessed.
Cette sous-section décrit comment les caches de vue sont générés lorsqu'on accède aux noeuds.
Whenever eZ Publish is requested to output information about a node (either by a system URL or a virtual URL), it executes the program code that is associated with the "view" view of the "content" module. Upon completion, the view returns a result to the module, which in turn returns it to the rest of the system. eZ Publish automatically generates an array called "module_result" containing information about which module that was run, which view that was called, the output that was produced and so on. The actual output of the view (i.e. the XHTML code generated using one of the node templates) is put to "$module_result.content" and is included in the pagelayout by accessing this template variable:
Chaque fois qu'il est demandé à eZ publish
d'afficher des informations sur un noeud (par le biais, soit d'un URI système soit d'un URI virtuel) il exécute le code associé à la vue view
du module content
. L'exécution de ce code terminée, la vue renvoie un résultat au module qui à son tour le renvoie au reste du système. eZ publish
génère automatiquement un tableau appelé module_result
contenant des informations sur le module qui vient d'être exécuté, sur la vue qui a été appelée, sur la sortie (le résultat) qui a été produite, etc... Le véritable résultat de la vue (c'est à dire le code XHTML généré en utilisant un des templates de noeuds
) est placé dans la variable $module_result.content
puis inclus dans le template principal pagelayout.tpl
en accédant à la variable de template suivante:
{$module_result.content}
When the pagelayout is rendered, the {$module_result.content} part will be replaced with the actual output. If view caching is enabled, the entire result of the module will be cached. This means that the contents of the "module_result" variable will be put into a cache file located in the "var/example/cache/content" directory (where "example" is usually the name of the siteaccess that is being used - it is set by the "VarDir" directive in "site.ini" or an override).
Lorsque le contenu du template pagelayout.tpl
est généré, la partie { $module_result.content
} est remplacée par le vrai contenu. Si le cache de vues
est activé, le résultat de l'exécution du module est entièrement mis en cache. Cela signifie que le contenu de la variable $module_result
est mis en cache dans un fichier placé dans le répertoire var/exemple/cache/content/
(où exemple
est normalement le nom du siteaccess qui est utilisé - ce siteaccess est défini par le paramètre VarDir
du fichier de configuration site.ini
ou de l'une de ses surcharges).
Please note that eZ Publish creates multiple view caches for the nodes based on roles and user preferences. This means that for example different users (who are logged in, with different permissions/preferences) will be served different caches while anonymous users and users with the same type of permissions/preferences will be served the same file. In other words, when view caching is on, the "view" view of the "content" module will only be run if the system is unable to locate a view-cached version of the result - otherwise a cached version will be inserted in the pagelayout. Please note that the pagelayout itself is not cached by default.
Notez que eZ publish
crée, pour les noeuds, de multiples caches de vues en fonction des rôles et des préférences utilisateur. Cela signifie, par exemple, que différents utilisateurs (logués et ayant des droits et/ou des préférences différentes) seront servis
par différents caches alors que les utilisateurs anonymes ou ceux ayant le même type de permissions et/ou de préférences seront servis
par le même fichier. En d'autres termes, lorsque le système de cache de visualisation est activé, la vue view
du module content
ne sera exécutée que si le système ne trouve pas de version "cachée" du résultat - si une version "cachée" existe alors elle sera insérée dans le template pagelayout.tpl
. Notez que par défaut ce template n'est pas mise en cache.
Another thing worth noticing is that the view caches are also depending on some other parameters. For example:
L'autre chose intéressante à noter est que les caches de vues dépendent également d'autres paramètres, comme par exemple:
-
View mode
du mode de vue -
Language
de la langue -
View parameters in the URL
des parmètres de vue passés dans l'URI -
Layout (for example print will be in different cache files)
de la mise en page (par exemple la mise en page d'impression sera servie par des fichiers de cache différents) - etc..
Exemple
Let's say that node 46 is the company about page and the custom template "aboutpage.tpl" overrides the default "node/view/full.tpl" template for this particular node.
Supposons que le noeud 46 soit la page de présentation de l'entreprise et que le template personnalisé aboutpage.tpl
surcharge le template par défaut node/view/
full.tpl
pour ce noeud 46.
Both the virtual URL "http://www.mysite.com/company/about" and the system URL "http://www.mysite.com/content/view/full/46" point to this page. When one of these URLs is requested, the system will execute the "view" view of the "content" module using "46" as the ID number of the node and "full" as the view mode. The resulting XHTML code containing the company about information will be generated using the "aboutpage.tpl" template. The output will be put to "$module_result.content" and then will be included in the pagelayout.
Les URI virtuel http://www.mysite.com/company/about
et système http://www.mysite.com/content/view/full/46
pointent vers la même page et que l'on utilise l'un ou l'autre de ces deux URI, le système exécute la vue view
du module content
et utilise 46
comme numéro de ID du noeud et full
comme mode de vue
. Le code XHTML résultant, contenant des informations au sujet de l'entreprise, sera généré en utilisant le template aboutpage.tpl
. Le résultat sera alors placé dans la variable $module_result.content
puis inclu dans le template pagelayout.tpl
.
If view caching is enabled for the "full" view mode, the entire result of the module will be cached in a file. The cache files get long names like for example "46-122bc591bf62e87a4e9ddcb5ba352bc4.cache". Next time the company about page is being accessed, the system will not go through the burden of executing the "view" view of the "content" module (generating the result, etc.) but load the cache file instead.
Si le cache de vues est activé pour le mode de vue full
, le résultat du module sera entièrement placé dans un fichier de cache. Les fichiers de cache ont des noms longs comme par exemple 46-122bc591bf62e87a4e9ddcb5ba352bc4.cache
. La prochaine fois que la page d'information sur l'entreprise sera demandée, le système n'ira pas directement exécuter la vue view
du module content
(pour générer le résultat etc...) mais chargera, à la place, le fichier de cache.
The $node variable / La variable $node
In eZ Publish versions prior to 3.9, the "$node" variable might be present in the pagelayout when view caching is disabled. From 3.9, this variable is not available in the pagelayout, regardless of whether view caching is enabled or not. It is recommended to use $module_result for fetching the necessary information (for example, "$module_result.node_id" outputs the ID number of the node that is being viewed).
Dans les versions antérieures aux versions 3.9 de eZ Publish
, la variable $node
pouvait être présente dans le template pagelayout.tpl
lorsque le cache de vues était désactivé. Depuis la version 3.9 et indépendamment du fait que le cache de vues soit ou non activé, cette variable n'est plus disponible dans ce template. Il est donc recommandé d'utiliser la variable $module_result
pour rechercher les informations nécessaires (par exemple, $module_result.node_id
renvoie le numéro de ID du noeud courant/affiché).
PDF cache / Cache des fichiers PDF
The following text explains how the view cache is generated when a PDF version of a site page (a content node) is being accessed. Note that the PDF export mechanism has been deprecated in eZ Publish 4.0 and will be removed in future releases.
Le paragraphe qui suit explique comment est généré le cache de vue lorsque la version PDF d'une page (un noeud de contenu) du site est demandée. Retenez que le mécanisme d'export au format PDF est déprécié dans les versions 4.0 de eZ Publish
est sera supprimé dans les versions futures.
Whenever eZ Publish is requested to generate a PDF version of a node, it executes the program code that is associated with the "pdf" view of the "content" module. Instead of inserting the output into the pagelayout via $module_result.content, the system will fetch the actual page content (i.e. the attributes of the object that is encapsulated by the specified node) using the "pdf.tpl" template and generate a PDF file using "execute_pdf.tpl". These default templates are located in the "templates/node/view" directory of the standard design.
Chaque fois qu'il est demandé à eZ publish
de générer la version PDF d'un noeud, le système exécute le code associé à la vue pdf
du module content
. Plutôt que d'insérer le resultat de l'exécution du code dans le template pagelayout.tpl
via la variable $module_result.content
, le système recherche le vrai contenu de la page (c'est à dire le contenu des attributs de l'objet encapsulé par le noeud spécifié) en utilisant le template pdf.tpl
et génère un fichier PDF en utilisant le template execute_pdf.tpl
. Ces templates par défaut sont placés dans le répertoire templates/node/view/
du design standard
.
If view caching is enabled for the "pdf" view, the resulting PDF file will be cached. This means that the system will save a copy of the actual PDF document into a cache file located in the "var/example/cache/content" directory (where "example" is usually the name of the siteaccess that is being accessed - it is controlled by the "VarDir" directive in "site.ini" or an override).
Si le cache de vues est activé pour la vue pdf
, le fichier PDF résultant est mis en cache, ce qui signifie que le système place une copie du fichier PDF original dans le fichier de cache situé dans le répertoire var/exemple/cache/content/
(où exemple
est normalement le nom du siteaccess courant - ce siteaccess est défini par le paramère VarDir
du fichier de configuration site.ini
ou de l'une de ses surcharges).
Exemple
If node 46 is the company about page, then accessing the URL "http://www.mysite.com/content/pdf/46" will lead to executing the "pdf" view of the "content" module. The system will generate a PDF version of the company about page and display it to the user.
Si le noeud 46 correspond à la page de présentation de l'entreprise, alors l'URI http://www.mysite.com/content/pdf/46
engendre l'exécution de la vue pdf
du module content
. Le système génère alors une version PDF de la page d'information sur l'entreprise et l'affiche.
If view caching is enabled for the "pdf" view, the resulting PDF document will be cached in a file, for example called "46-3579d18de31e99fc84d2d9a5f113c3be.cache". Please note that this file can be opened using a PDF reader (in some cases it would have to be renamed to .pdf).
Si le cache de vues est activé pour la vue pdf
, le fichier PDF résultant est mis en cache dans un fichier appelé par exemple 46-3579d18de31e99fc84d2d9a5f113c3be.cache
. Notez que ce fichier peut être ouvert avec un lecteur PDF (dans certains cas il sera peut-être nécessaire de modifier son extension en .pdf
).
[1 ]: La traduction Cache de visualisation a été retenue par l'équipe de traducteurs pour traduire View cache en français.
Commentaires











