Améliorez les performances de votre site web avec PhpFastCache

Dans cet article, nous allons explorer la bibliothèque PhpFastCache, qui vous permet d'implémenter la mise en cache dans vos applications PHP. Cela contribue donc à améliorer les performances globales du site Web et les temps de chargement des pages..

Qu'est-ce que PhpFastCache??

PhpFastCache est une bibliothèque qui facilite l’implémentation de la mise en cache dans vos applications PHP. C'est une bibliothèque facile à utiliser et pourtant puissante qui fournit plusieurs API pour vous aider à mettre en œuvre une stratégie de mise en cache de votre choix sans trop de tracas..

Ne commettez pas l'erreur de supposer qu'il s'agit simplement d'un schéma de mise en cache du système de fichiers traditionnel. En fait, PhpFastCache supporte une multitude d’adaptateurs vous permettant de choisir parmi des back-end hautes performances tels que Memcache, Redis, MongoDB, CouchDB, etc..

Voyons rapidement quelques-uns des adaptateurs les plus populaires:

  • système de fichiers
  • Memcache, Redis et APC
  • CouchDB et MongoDB
  • Zend Disk Cache et Zend Memory Cache

Si vous ne trouvez pas votre choix d'adaptateur dans la liste ci-dessus, vous pouvez facilement développer un pilote personnalisé qui se connecte au système et fonctionne sans effort..

En plus des fonctionnalités de base, la bibliothèque PhpFastCache fournit également un mécanisme d’événement qui vous permet de répondre à certains événements prédéfinis. Par exemple, lorsque quelque chose est supprimé du cache, vous pouvez intercepter cet événement et actualiser ou supprimer les données associées..

Dans les sections suivantes, nous allons passer en revue l’installation et la configuration de PhpFastCache, ainsi que la démonstration de quelques exemples..

Installation et configuration

Dans cette section, nous allons passer en revue l'installation et la configuration de la bibliothèque PhpFastCache. Il y a différentes manières d'aborder cela dans votre projet.

Si vous voulez juste télécharger le .Zip *: français ou .tar.gz version de la bibliothèque sans trop de soucis, vous pouvez aller la chercher sur le site officiel.

D'autre part, vous pouvez également l'installer en tant que package Composer. Cela devrait être le moyen préféré car cela facilite la maintenance et la mise à niveau à l'avenir. Si vous n'avez pas encore installé Composer, vous devrez d'abord le faire..

Une fois que vous avez installé Composer, allons de l'avant et récupérez la bibliothèque PhpFastCache à l'aide de la commande suivante.

$ composer nécessite phpfastcache / phpfastcache

Une fois cette commande terminée, vous devriez avoir en place le répertoire du fournisseur, qui contient tout ce dont vous avez besoin pour exécuter la bibliothèque PhpFastCache. D'autre part, s'il vous manque des bibliothèques ou des extensions requises par la bibliothèque PhpFastCache, Composer vous demandera de les installer en premier..

Vous devriez aussi trouver le composer.json fichier qui ressemble à ceci:

"require": "phpfastcache / phpfastcache": "^ 6.1"

Quelle que soit la manière dont vous avez choisi d’installer la bibliothèque PhpFastCache, la seule chose nécessaire est d’inclure la autoload.php déposer dans votre application pour lancer des choses.

Si vous utilisez le flux de travail basé sur Composer, autoload.php est situé sous le vendeur annuaire.

// Inclure l'autoloader Composer Require 'YOUR_APP_PATH /vendor/autoload.php';

D'autre part, si vous avez téléchargé le .Zip *: français ou .tar.gz paquet, autoload.php devrait être disponible à src / autoload.php.

// Inclure l'autoloader requiert 'YOUR_APP_PATH /src/autoload.php';

Et avec cela, vous êtes prêt à mettre en cache et à profiter des avantages de l’étonnante bibliothèque PhpFastCache. Dans la section suivante, nous allons passer en revue quelques exemples pratiques montrant comment utiliser PhpFastCache dans votre application..

Manifestation

J'ai déjà mentionné que la bibliothèque PhpFastCache prend en charge divers adaptateurs pour la mise en cache. Dans cette section, je vais vous montrer comment utiliser le système de fichiers et les adaptateurs Redis..

Mise en cache à l'aide de l'adaptateur de fichiers

Allez-y et créez le fichier_cache_exemple.php fichier avec le contenu suivant. Je suppose que vous utilisez le flux de travail Composer et donc le vendeur répertoire est au même niveau que celui de fichier_cache_exemple.php. Si vous avez installé manuellement PhpFastCache, vous pouvez modifier la structure de fichier en conséquence..

 __DIR__. "/ cache"]); // Récupère l'instance de cache de fichiers $ objFilesCache = CacheManager :: getInstance ('files'); $ key = "welcome_message"; // Essayez de récupérer l'élément mis en cache avec la clé "welcome_message" $ CachedString = $ objFilesCache-> getItem ($ key); if (is_null ($ CachedString-> get ())) // L'entrée mise en cache n'existe pas $ numberOfSeconds = 60; $ CachedString-> set ("Ce site web utilise PhpFastCache!") -> expiresAfter ($ numberOfSeconds); $ objFilesCache-> save ($ CachedString); echo "Pas encore en cache, nous le mettons en cache et essayons de l'obtenir à partir du cache!
"; echo" La valeur de welcome_message: ". $ CachedString-> get (); else // L'entrée en cache existe echo" Déjà dans le cache!
"; echo" La valeur de welcome_message: ". $ CachedString-> get ();

Passons en revue pour comprendre ce que chaque morceau de code représente. La première chose évidente est d'inclure le autoload.php déposer et importer l'espace de noms que nous avons l'intention d'utiliser.

// Inclure l'autoloader Composer nécessite __DIR__. '/vendor/autoload.php'; utilisez phpFastCache \ CacheManager;

Lorsque vous utilisez le cache de fichiers, vous êtes censé fournir le chemin du répertoire contenant les fichiers générés par le système de mise en cache. Et c'est exactement ce que nous avons configuré dans l'extrait suivant.

// Initialisation de la configuration par défaut pour les "fichiers" adaptateur CacheManager :: setDefaultConfig (["path" => __DIR__. "/ Cache"]);

Bien sûr, nous devons nous assurer que le cache le répertoire existe et il est accessible en écriture par le serveur Web.

Ensuite, nous instancions l’objet cache et essayons de charger l’élément mis en cache avec le message de bienvenue clé.

// Récupère l'instance de cache de fichiers $ objFilesCache = CacheManager :: getInstance ('files'); $ key = "welcome_message"; // Essayez de récupérer l'élément mis en cache avec la clé "welcome_message" $ CachedString = $ objFilesCache-> getItem ($ key);

Si l'élément n'existe pas dans le cache, nous l'ajouterons au cache pendant 60 secondes et l'afficherons à partir du cache. D'autre part, s'il existe dans le cache, nous allons simplement le chercher!

if (is_null ($ CachedString-> get ())) // L'entrée en cache n'existe pas $ numberOfSeconds = 60; $ CachedString-> set ("Ce site web utilise PhpFastCache!") -> expiresAfter ($ numberOfSeconds); $ objFilesCache-> save ($ CachedString); echo "Pas encore en cache, nous le mettons en cache et essayons de l'obtenir à partir du cache!
"; echo" La valeur de welcome_message: ". $ CachedString-> get (); else // L'entrée en cache existe echo" Déjà dans le cache!
"; echo" La valeur de welcome_message: ". $ CachedString-> get ();

C'était une configuration assez facile, n'est-ce pas? En fait, vous pouvez aller de l'avant et exécuter le fichier pour vérifier les résultats!

Lorsque vous l'exécutez pour la première fois, vous devriez voir le résultat suivant:

Pas encore en cache, nous le mettons en cache et essayons de l'obtenir à partir du cache! La valeur de welcome_message: Ce site utilise PhpFastCache!

Lors de la prochaine exécution, la sortie ressemble à ceci:

Déjà en cache! La valeur de welcome_message: Ce site utilise PhpFastCache!

C'était donc la mise en cache du système de fichiers à votre disposition. Dans la section suivante, nous reproduirons le même exemple en utilisant l'adaptateur de cache Redis..

Mise en cache à l'aide de l'adaptateur Redis

Avant de poursuivre, je suppose que vous avez déjà installé le serveur Redis et qu’il fonctionne sur le port 6379, qui est le port par défaut de Redis..

Avec cette mise en place, allons de l'avant et créons le redis_cache_example.php fichier avec le contenu suivant.

 '127.0.0.1', "port" => 6379]); // Obtient une instance de cache de fichiers $ objRedisCache = CacheManager :: getInstance ('redis'); $ key = "welcome_message"; // Essayez de récupérer l'élément mis en cache avec la clé "welcome_message" $ CachedString = $ objRedisCache-> getItem ($ key); if (is_null ($ CachedString-> get ())) // L'entrée mise en cache n'existe pas $ numberOfSeconds = 60; $ CachedString-> set ("Ce site web utilise PhpFastCache!") -> expiresAfter ($ numberOfSeconds); $ objRedisCache-> save ($ CachedString); echo "Pas encore en cache, nous le mettons en cache et essayons de l'obtenir à partir du cache!
"; echo" La valeur de welcome_message: ". $ CachedString-> get (); else // L'entrée en cache existe echo" Déjà dans le cache!
"; echo" La valeur de welcome_message: ". $ CachedString-> get ();

Comme vous pouvez le constater, le fichier est à peu près le même, à l’exception de la section qui initialise la configuration spécifique à l’adaptateur Redis..

// Initialisation de la configuration par défaut pour l'adaptateur "redis" CacheManager :: setDefaultConfig (["hôte" => '127.0.0.1', "port" => 6379]);

Bien sûr, vous devez modifier les paramètres d’hôte et de port pour répondre à vos exigences si vous utilisez un serveur Redis autre que localhost..

Allez-y et lancez le redis_cache_example.php fichier pour voir comment cela fonctionne. Vous pouvez également le confirmer en vérifiant la sortie dans l'interface de ligne de commande Redis..

127.0.0.1:6379> KEYS * 1) "message_accueil"

C'est tout ce dont vous avez besoin pour utiliser l'adaptateur Redis. Je vous encourage à essayer différents adaptateurs et leurs options!

Conclusion

Aujourd'hui, nous sommes passés par l'une des bibliothèques de mise en cache les plus populaires pour PHP-PhpFastCache. Dans la première moitié de l'article, nous avons abordé les bases, ainsi que l'installation et la configuration. Plus loin dans cet article, nous avons cité quelques exemples pour illustrer les concepts abordés..

J'espère que vous avez apprécié l'article et que vous serez motivé pour intégrer la bibliothèque PhpFastCache dans vos projets à venir. N'hésitez pas à poster vos questions et commentaires ci-dessous!