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.
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.
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.
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.
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 :
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.
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.
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
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_SECONDS
Par exemple,
À 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 ?
À 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 :
wp_options
Nous enregistrerons une option dans le tableau Ensuite, dans la seconde moitié du code, nous faisons ce qui suit :
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 ); }
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.
, 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.
WP_Query
和WP_User_Query
Bien sûr, il existe d'excellentes API liées à l'exécution de requêtes conçues pour l'usage spécifique de WordPress, commeMais 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!