Créer du cache en PHP

Mis à jour il y a 6 mois

Il est crucial de se concentrer sur les performances lors du développement d’applications PHP. Les applications Web peuvent compter des milliers d'utilisateurs, ce qui peut entraîner des problèmes de performances et de disponibilité.

Auteur

Boss I.

Technologies

PHP

Lorsque vous travaillez sur des sites Web créés avec PHP à partir de zéro et sans framework, la vitesse de chargement peut souvent être un problème.La mise en cache est extrêmement utile pour accélérer les pages Web PHP.

Dans cet article, vous allez decouvrir comment créer un système de mise en cache PHP simple pour vos pages Web.

Qu’est-ce que la mise en cache des pages ?

La mise en cache des pages est une technique qui consiste à créer une collection de données en doublons lorsque les données originales sont coûteuses à récupérer ou à calculer (généralement en termes de temps d'accès).

PHP étant un langage de programmation interprété, le serveur doit exécuter le code à chaque fois qu'une page PHP est demandée. Selon la complexité et la longueur du script, cette opération peut prendre du temps et demander beaucoup de ressources. Si votre site Web a beaucoup de trafic, cela peut vraiment ralentir votre serveur et votre site.

Si une page Web est mise en cache, le script vérifiera si le fichier cache associé existe. Si c'est le cas, le fichier statique mis en cache sera envoyé au navigateur du visiteur. Dans le cas contraire, une version statique de la page dynamique sera créée automatiquement à la première demande d'un visiteur. En créant une version statique des pages dynamiques, le système de mise en cache économise beaucoup de ressources du serveur puisque le script PHP n'est exécuté qu'une seule fois, au lieu d'être exécuté à chaque fois que la page est demandée.

Les fichiers cache ont une durée de vie spécifique qui est défini par le développeur, si la durée de vie définie est dépassée, le serveur exécutera le script PHP et en générera ensuite une nouvelle version en cache.

Première étape : créer le fichier "top-cache.php"

Nous devons créer deux fichiers, le premier : un fichier nommé top-cache.php et collez-y le code ci-dessous.

uri = $_SERVER["SCRIPT_NAME"];
$break = explode('/', $url);
$file = $break[count($break) - 1];
$cachefile = 'cached-' . substr_replace($file, "", -4) . '.html';
$cachetime = 18000;
// Servir depuis le cache s'il est inférieur à $cachetime
if (file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) {
 echo "<!-- Copie en cache, générée " . date( 'H:i', filemtime($cachefile))." -->\n";
 readfile($cachefile);
 exit;
}
ob_start(); // Démarrer le tampon de sortie

Que fait ce code ? 

Les cinq premières lignes créent le nom du fichier mis en cache en fonction du fichier PHP actuel. Donc, si vous utilisez un fichier nommé list.php, la page Web créée par la mise en cache des pages sera nommée cached-list.html. La ligne six crée une variable $cachetime, qui détermine la durée de vie de notre cache simple (temps du cachefile).Les lignes neuf à treize sont une instruction conditionnelle qui recherche un fichier cache nommé $cachefile . Si le fichier est trouvé, un commentaire est inséré (ligne dix) et le fichier $cachefile est inclus. Ensuite, l'instruction exit arrête l'exécution du script et le fichier est envoyé au navigateur client. Cela signifie que si un fichier statique est trouvé, aucun PHP n'est interprété par le serveur. La ligne 14 crée un tampon si le fichier $cachefile n'est pas trouvé. C'est tout pour le fichier top-cache.php.

Deuxième étape : créer le fichier "Bottom-cache.php"

Maintenant, créez un autre nouveau fichier PHP, nommé bottom-cache.php et collez-y le code ci-dessous.

// Mettre en cache le contenu dans un fichier cache
$coched = fopen($cachefiie, 'w');
fwrite($cached, ob_get_contents());
fclose($cached);
ob_end_flush(); // Envoyer la sortie au navigateur

Si un fichier mis en cache nommé $cachefile n'est pas trouvé sur votre serveur, ce code sera exécuté et créera lui-même le fichier cache. Par conséquent, la prochaine fois que la page sera demandée, le fichier statique $cachefile sera servi au navigateur client au lieu d'exécuter l'intégralité du fichier PHP.

Troisième étape : inclure les fichiers de cache sur votre page

Maintenant que vous avez créé les deux fichiers nécessaires, il ne vous reste plus qu'à les inclure sur la page PHP que voussouhaitez mettre en cache. Comme vous l'avez probablement deviné, le fichier top-cache.php doit être inclus au début de votre page PHP et le fichier bottom-cache.php à la fin, comme indiqué ci-dessous :

include('top-cache.php');
// Votre code PHP habituel va ici
include('bottom-cache.php');

Maintenant, si vous testez le cache sur une page lente, vous serez étonné de voir à quel point la page est rapide. Ce simple PHP.

Le système de mise en cache est la solution préférée lorsque l’on travaille sur des sites Web PHP à partir de zéro.

Un peu de concept

  • Qu’est-ce que le cache OpCode ?
    Un cache OpCode est une extension améliorant les performances qui met en cache le résultat de la compilation du code PHP en bytecode. Tout au long de la vie de PHP, un certain nombre de caches OpCode ont été disponibles, principalement en fonction de la version PHP utilisée.
  • Comment activer le cache OpCode ?
    Comme les caches OpCode disponibles dépendent de la version PHP utilisée sur votre serveur, veuillez contacter votre fournisseur d'hébergement Web pour savoir comment activer la mise en cache OpCode sur votre site.

C'est une version francaise traduite. vous pouvez laire la  version original ici

Cette publication vous a plu ?
Partagez-la avec vos ami(e)s sur les réseaux sociaux.

Boss Ibrahim

Boss Ibrahim, l'auteur

... Vous pouvez ajouter votre biographie ici en éditant votre profil ...
Voir profil

Commentaires