En ce qui concerne la construction d’une application web avec WordPress, ses puissantes API simplifient beaucoup la tâche. L’ajout ou la récupération de données avec l’API des options n’est pas vraiment compliqué. Mais parfois, nous avons besoin de stocker des données temporaires avec une date d’expiration.

WordPress offre une mise en cache intuitive via de « Transitoires » (ou Transients en anglais) qui permettent de le faire, à savoir stocker des données temporaires avec une date d’expiration. Nous allons utiliser les transitoires, donc je me suis dit pourquoi ne pas prendre un nouveau regard sur cette API WordPress ?

Selon le Codex WordPress :

L’API Transitoires est très similaire à l’ API Options  mais avec la caractéristique ajoutée d’une heure d’expiration, ce qui simplifie le processus d’utilisation de la  table wp_options de la base de données pour stocker temporairement des informations mises en cache.

Dans le cadre de cette série, les transitoires constituent un moyen efficace pour rediriger les utilisateurs vers la page d’accueil quand ils activent un plugin en stockant les données temporaires.

Dans ce tutoriel, nous allons explorer le concept de l’API Transitoires (Transients) sur WordPress et comment il diffère de l’API Options.

Transient API

Les transitoires nous fournissent des moyens de stocker temporairement des informations mises en cache en fournissant un nom personnalisé (paires « clé-valeur ») et une heure d’expiration. Une fois le délai défini est terminée, les transitoires expirent et sont supprimés. Ces transitoires améliorent les performances et accélèrent la performance globale de l’application web.

Mais une question se pose: Est-ce que le délai d’expiration constitue le seul avantage des « Transients » ?

La réponse est non ! Malgré le fait que l’API options sert le même but de stockage de données, l’assainissement et la récupération, il ne peut pas fournir la meilleure performance possible avec un grand ensemble de données.

Avec l’expiration ajoutée, les transitoires deviennent plus appropriée pour stocker temporairement des données. Afin d’assurer un plus petit nombre de requêtes Web, les transitoires ont la capacité de stocker des données dans la mémoire rapide, par exemple Memcached, au lieu de la base de données WordPress traditionnelle. A noter également est que Transitoires sont intrinsèquement accélérée par la mise en cache des plugins, où les options classiques ne le sont pas. Comme mentionné dans le codex:

Un plugin Memcached, par exemple, stockera WordPress valeurs transitoires en mémoire rapide au lieu de la base de données. Pour cette raison, les transitoires devraient être utilisés pour stocker des données qui devrait expirer, ou qui peut expirer à tout moment. Les transitoires ne devraient également jamais être supposés être dans la base de données, car ils peuvent être sauvegardés ailleurs.

Par conséquent, chaque fois que vous avez besoin d’une fonctionnalité qui expire ou est qui supprimée après un laps de temps particulier, utilisez les transitoires à la place des options.

Utilisation des « Transients »

Les transitoires travaillent avec une interface très simple. Vous pouvez effectuer trois fonctions de base avec ces derniers:

  • Créer/mettre à jour des données avec la fonction « set_transient »
  • Récupérer des données avec la fonction « get_transient »
  • Supprimer des transients avec la fonction « delete_tansient »

Ces trois opérations de base peuvent vous aider à accélérer les performances d’une application.

1 – Création / Mise à jour d’un transitoire

Utilisez la fonction  set_transient() pour créer ou mettre à jour un transitoire. Cette fonction prend trois paramètres:

  • Key : (type string) Nom du transitoire. Doit avoir au plus 172 caractères.
  • Valeur : (type  mixte) Il s’agit des données qui doivent être stockées. Peut-être une variable PHP ou un objet tableau.
  • Expiration : (type  int) temps de vie en secondes. Par défaut 0 (aucune date d’expiration).

Point à retenir :  La date d’expiration que vous définissez est la période pendant laquelle le transitoire sera stocké. Après cette période, le transitoire est supprimé. Mais le transitoire peut également être supprimé avant cette date.

Comme il fait partie de la mémoire cache, elle peut être supprimée par l’utilisateur avant le temps d’échéance.

Donc, dites-vous bien que le temps d’expiration est une limite que ne franchira jamais la durée de vie d’un transitoire.

<?php set_transient( string $transient, mixed $value, int $expiration ) ?>

Les deux premiers paramètres sont une paire de « clé – valeur » et sont obligatoires, tandis que le troisième paramètre qui définit la durée maximale d’expiration est optionnelle.

Voici un exemple pratique :

<?php 
 // Transient max age is 60 seconds.
 set_transient( '_welcome_redirect_wpw', true, 60 );
?>

Constante de temps dans les transitoires

Dans l’exemple ci-dessus, j’ai définit 60 secondes sur le troisième paramètre, qui définit le temps d’expiration après quoi le transitoire doit être supprimé. Selon l’exemple ci-dessus, l’objet _welcome_redirect_wpw  ne peut dont excéder 60 secondes de vie.

Sur WordPress 3.5, plusieurs constantes ont été introduites pour exprimer facilement le temps. Ces constantes rendent le code plus complet et précis. Voici la liste:

MINUTE_IN_SECONDS = 60 (seconds)
HOUR_IN_SECONDS = 60 * MINUTE_IN_SECONDS
DAY_IN_SECONDS = 24 * HOUR_IN_SECONDS
WEEK_IN_SECONDS = 7 * DAY_IN_SECONDS
YEAR_IN_SECONDS = 365 * DAY_IN_SECONDS

2 – Récupération d’un transitoire

Après avoir enregistré une valeur via la fonction  set_transient(), vous pouvez récupérer la valeur en appelant la fonction  get_transient().

Il prend un seul paramètre, la clé du transitoire  $ transitoire, et renvoie le (type mixte) la valeur du transitoire.

Le format standard se présente ainsi:

<?php get_transient( string $transient ); ?>

Dans le cas de notre exemple, la valeur est récupérée via:

<?php get_transient( '_welcome_redirect_wpw' ); ?>

Assez simple? Mais qu’est-ce qui se passerait si le transitoire n’existe pas ou a expiré ? Si tel est le cas, alors la fonction  get_transient() renvoie une valeur incorrecte.

Je vous recommande d’utiliser l’opérateur d’identité ( === ) lorsque vous manipuler la récupération des valeurs d’un transitoire.

3 – Suppression d’un transitoire

Il peut y avoir des situations où vous pourriez vouloir supprimer les transitoires avant leur expiration. La fonction delete_transient() vous y aidera. Son format est similaire à la fonction get_transient().

Il prend un seul paramètre, la clé du transitoire  $transitoire, et supprime le transitoire de façon permanente.

Voici le format général:

<?php delete_transient( string $transient ); ?>

Dans notre cas, nous pouvons le supprimer comme ceci:

<?php
 // Delete the redirect transient.
 delete_transient( '_welcome_redirect_wpw' );
 ?>

Les utilisations de Transitoires

Les transitoires peuvent être utilisés pour mettre en cache quelque chose (des données basiques au widget complet). Depuis leur lancement, les transitoires ont été utilisés dans différents projets web. Voici quelques usages pratiques des transitoires:

  • Vous pouvez les utiliser sur une page d’accueil de votre plugin.
  • Vous pouvez les utiliser dans un widget de la sidebar qui répertorie les données des meilleurs commentaires.
  • Vous pouvez accélérer les menus de navigation WordPress avec les transitoires.
  • Vous pouvez mettre en cache des étiquettes avec les transitoires.

C’est tout pour ce tutoriel. J’espère que vous saurez maintenant comment utiliser l’API Transient sur WordPress.