Maison > Tutoriel CMS > WordPresse > le corps du texte

Guide de développement d'applications Web WordPress : Explication détaillée des fonctionnalités disponibles (Partie 7) : Technologie de mise en cache

WBOY
Libérer: 2023-08-30 12:37:02
original
862 Les gens l'ont consulté

WordPress Web应用开发指南:可用功能详解(第7部分):缓存技术

L'une des choses les plus importantes auxquelles nous devons toujours prêter attention lors de la création d'applications Web est la performance.

La performance est une fonctionnalité, comme on dit.

Que vous soyez concepteur, développeur ou utilisateur, vous le savez intuitivement : lorsqu'il s'agit d'applications, nous détestons attendre. Nous sommes frustrés lorsque les choses ne fonctionnent pas assez vite ou lorsque nous devons attendre plus longtemps que nous ne le pensons.

À cette fin, la plupart des frameworks de développement Web modernes peuvent implémenter un certain type de mise en cache grâce à l'utilisation de certaines API, et WordPress (bien que de base) ne fait pas exception.

Alors que nous poursuivons notre discussion sur les raisons pour lesquelles WordPress est un choix viable en tant que base pour le développement d'applications Web, nous examinerons également les API fournies par l'application principale, comment elles fonctionnent et comment nous pouvons les utiliser à notre avantage. ainsi que la façon d'utiliser le plugin de mise en cache supplémentaire améliore encore les performances.


Pourquoi la mise en cache est-elle importante ?

En bref, la mise en cache est importante car elle nous permet de stocker les données fréquemment récupérées quelque part en mémoire afin qu'elles puissent être récupérées rapidement.

Quand on regarde la situation dans son ensemble, cela devient de plus en plus évident lorsque plusieurs utilisateurs consultent un site Web. Ce que je veux dire, c'est que si une personne (ou très peu de personnes) visite un site Web et que ce site Web stocke ses données dans une base de données, alors chaque fois que la page est chargée, ces informations doivent être récupérées du site Web. base de données, insérée dans la page, et restituée à l'utilisateur.

Si un certain niveau de cache est établi, la base de données n'a pas besoin d'être appelée fréquemment. Au lieu de cela, les informations peuvent être extraites d'une zone de la mémoire, ce qui permet une récupération plus rapide et donc des temps de chargement des pages plus rapides.

Nous entrerons dans les détails techniques plus loin dans cet article.

Et le plugin ?

Si vous utilisez WordPress depuis longtemps, vous connaissez probablement les nombreux plugins de mise en cache disponibles.

Ce sont sans aucun doute d'excellentes solutions pour accélérer votre site Web et/ou application Web, mais cela soulève la question : si vous pouvez utiliser un plugin pour ce faire, alors pourquoi devrions-nous nous en soucier ?

Bien sûr, c'est une question valable, mais les plugins ne peuvent pas faire grand-chose par eux-mêmes.

Les développeurs peuvent créer leurs applications de telle manière qu'elles fonctionnent non seulement correctement sans mécanismes de mise en cache, mais qu'elles soient également grandement améliorées par lesdits plugins de mise en cache.

Je veux dire, ces plugins de mise en cache recherchent les données que les thèmes et les applications souhaitent stocker quelque part, et si nous pouvons le faire par programme dans notre propre contexte de travail, alors ces plugins auront un plus grand effet sur les performances.

Après avoir compris les API disponibles, nous reviendrons sur ce sujet plus loin dans cet article et verrons comment elles peuvent améliorer les performances des plugins de mise en cache.


API transitoire

Afin d'introduire la mise en cache de premier niveau dans notre application, nous devons tirer parti de l'API Transients de WordPress. Tout d’abord, veuillez noter que la définition officielle d’un transitoire est « quelque chose qui n’existe que pour une courte période

».

Tel que défini dans le Codex Alimentarius :

[API transitoire] fournit un moyen simple et standardisé de stocker temporairement les données mises en cache dans la base de données en lui attribuant un nom personnalisé et une plage de temps après laquelle les données expireront et seront supprimées.

Mais qu’est-ce que cela signifie exactement ? Après tout, les données sont toujours stockées dans la base de données, alors pourquoi est-ce mieux que de stocker les données dans n'importe quelle autre table de base de données (comme la table wp_options ?) ?

Nous en discuterons plus en détail une fois que nous reviendrons sur la discussion sur la mise en cache et les plugins.

Configurer les transitoires

Définir des valeurs transitoires est en fait aussi simple que de stocker les données dans une table d'options.

Plus précisément, vous avez besoin d'une valeur clé qui identifie de manière unique les données, puis d'une valeur associée à cette clé. Vous avez également besoin d'un délai d'expiration (en secondes) pour conserver les données dans la table avant d'actualiser la table.

Supposons que nous souhaitions stocker le nom de l'utilisateur actuel en tant que dernier ou dernier utilisateur actif sur le site Web. Nous pouvons le faire en utilisant la fonction wp_get_current_user().

Tout d'abord, nous définirons les valeurs suivantes :

set_transient( 'most_recent_user', wp_get_current_user()->user_login, 12 * HOUR_IN_SECONDS )

Ici, veuillez faire attention aux points suivants :

  • J'identifie l'utilisateur le plus récent du système comme étant l'utilisateur actuellement connecté et nous le stockons pendant 12 heures.
  • Veuillez noter que les constantes HOUR_IN_SECONDS ont été introduites dans WordPress 3.5. Une liste complète des constantes est disponible ici.

Bien que ce soit ainsi que nous configurons les transitoires, cela n'explique toujours pas comment nous gérons les transitoires s'ils n'existent pas ou existent déjà.

Nous aborderons cela en détail plus loin dans cet article.

Récupérer les transitoires

Quand il s'agit de récupérer des transitoires, cela est très similaire à la récupération de quelque chose comme des métadonnées ou des options. Je veux dire, nous avons juste besoin de connaître la clé pour récupérer les informations.

Donc, pour être cohérent avec l'exemple ci-dessus, on peut récupérer l'utilisateur le plus récent de l'application avec l'appel suivant :

get_transient('most_recent_user');

Cela renverra évidemment quel que soit le type d'informations que vous avez stocké, ou si le transitoire a expiré (c'est-à-dire que plus de 12 heures se sont écoulées), la fonction renverra une valeur booléenne de FALSE.

C'est un élément essentiel à retenir, surtout si vous essayez de lire des valeurs mises en cache et que vous devez ensuite les récupérer à partir d'une autre source de données (si elles ne sont pas disponibles dans le stockage temporaire).

Nous examinerons un exemple complet de cette opération avant la fin de cet article.

Supprimer les transitoires

Enfin, si vous devez supprimer un transitoire pour le supprimer complètement, ou le supprimer avant son expiration définie afin qu'il puisse être remplacé par une autre valeur, alors vous pouvez simplement utiliser la fonction suivante :

delete_transient('most_recent_user');

De plus, si la suppression temporaire de la valeur échoue, la fonction renverra FALSE;否则,它将返回 FALSE sinon, elle renverra

;

Expiration transitoire

Quand il s'agit de définir les délais d'expiration pour les valeurs mises en cache, il existe des moyens de rendre la définition de la valeur plus facile que les opérations entières musicalement basiques.

MINUTE_IN_SECONDSPar exemple,

est plus facile à utiliser que 60, surtout lorsqu'on multiplie par minutes, heures ou jours.

À partir de WordPress 3.5, plusieurs constantes ont été ajoutées à l'application principale pour faciliter la lecture de ces calculs.

C'est-à-dire :
  • MINUTE_IN_SECONDS
  • HOUR_IN_SECONDS
  • DAY_IN_SECONDS
  • WEEK_IN_SECONDS
  • YEAR_IN_SECONDS

Plus facile à utiliser, à lire et à écrire, n'est-ce pas ?

Exemple complet utilisant des transitoires

À ce stade, je pense qu'il est important de comprendre comment configurer un transitoire en commençant par stocker la valeur dans la table des options.

Voici l'ordre dans lequel nous faisons cela :
  1. wp_optionsNous enregistrerons une option dans le tableau
  2. .
  3. Ensuite, nous vérifierons si la valeur existe dans le cache.
  4. Si la valeur existe
  5. dans le cache, nous la supprimerons sinon, nous l'ajouterons ;

Ensuite, dans la seconde moitié du code, nous faisons ce qui suit :
  1. Nous allons essayer de récupérer la fonction valeur du cache.
  2. Si la valeur existe dans le cache, nous reviendrons à la table des options ; cependant, si la valeur existe, alors nous l'utiliserons.

Cela étant dit, jetons un coup d'oeil :

$username = wp_get_current_user()->user_name;
add_option( 'most_recent_user', $username );

// Check to see if the value exists in the cache
if ( FALSE !== get_transient( 'most_recent_user' ) ) {

	// If it does, we'll delete it...
	if( delete_transient( 'most_recent_user' ) ) {

		// ...and store the most recent user for a maximum of one minute
		set_transient( 'most_recent_user', MINUTE_IN_SECONDS );

	} else {
		// The deletion was unsuccessful, so log the error
	}

}

// Now try to read the value from the cache.
if ( FALSE !== ( $username = get_transient( 'most_recent_user' ) ) {

	// Since it doesn't exist, then we'll read it from the option's table
	$username = get_option( 'most_recent_user' );

	// And then we'll update the cache
	set_transient( 'most_recent_user', $username, MINUTE_IN_SECONDS );

}
Copier après la connexion

Veuillez noter que cet exemple n'est pas complet : il pourrait être remanié pour être plus clair et le code devrait être résumé en fonctions plus pertinentes pour l'application, mais le but de ce code est de montrer comment gérer la logique conditionnelle, les options et les transitoires. .

Comment cela fonctionne-t-il avec les plugins ?

Maintenant, cela dit, nous pouvons revisiter la question de savoir comment utiliser les transitoires pour améliorer les performances des plug-ins.

Comme nous l'avons mentionné précédemment :

Après avoir compris les API disponibles, nous reviendrons sur ce sujet plus loin dans cet article pour comprendre comment elles peuvent améliorer les performances des plugins de mise en cache. 块引用>

Cela étant dit, la mise en cache et la base de données WordPress concernent toutes la emplacement

des données dans la base de données.

Étant donné que les données transitoires sont stockées dans un emplacement différent des autres données, les plugins (tels que ceux basés sur Memcached) rechercheront les données où les données transitoires sont stockées et chargeront les données en mémoire à partir de cet emplacement.

Ainsi, lorsque des données sont demandées, les données seront récupérées de la mémoire. Si les données n'existent pas, elles sont récupérées de la base de données.

Plus important encore, si elle est programmée correctement, en cas d'échec de la lecture des données du cache et de la récupération des données de la base de données, elles seront réinsérées dans le cache afin qu'elles soient insérées dans le cache lors de leur prochaine récupération. disponible en mémoire.

Enfin, l’essentiel à noter concernant les informations transitoires est qu’elles ont une date d’expiration. Cela signifie que les données ne seront stockées dans cette zone de la base de données que pendant une période de temps déterminée.

Pour cela, nous devons en tenir compte. Cela signifie que chaque fois que nous voulons récupérer des transitoires, nous devons nous assurer qu'ils existent. Dans le cas contraire, nous les retirons de leur emplacement et les stockons au bon endroit.

Requête personnalisée

À ce stade, nous avons couvert de nombreuses fonctionnalités fournies par WordPress liées aux bases du développement d'applications Web.

Mais nous avons un dernier élément majeur à couvrir : la façon de gérer les requêtes personnalisées.

WP_QueryWP_User_QueryBien sûr, il existe d'excellentes API liées à l'exécution de requêtes conçues pour l'usage spécifique de WordPress, comme

, mais nous examinerons également certains outils natifs qui nous permettent également d'écrire en utilisant des objets WordPress définis. Permet des requêtes personnalisées. à la base de données en utilisant des méthodes pour un nettoyage correct des données.

Mais nous aborderons tout cela et bien plus encore dans le prochain article.
🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal