Position actuelle: Accueil> Derniers articles> Créer un système de cache pour enregistrer un état constant

Créer un système de cache pour enregistrer un état constant

M66 2025-05-20

En PHP, les constantes sont un concept très important et leurs valeurs pendant l'exécution du script ne sont pas modifiables. Habituellement, les constantes sont utilisées pour stocker certaines valeurs de configuration fixe, telles que les informations de connexion de la base de données, les chemins système, les clés d'API, etc. La fonction get_defined_constants () peut nous aider à obtenir toutes les constantes actuellement définies.

Cependant, lorsque nous avons un grand nombre de constantes qui doivent être lues fréquemment, chaque accès à la constante nécessite une certaine surcharge, en particulier dans les plus grands systèmes, les améliorations des performances deviennent particulièrement importantes. Afin d'améliorer les performances du programme et d'éviter de lire la définition des constantes à chaque fois, nous pouvons créer un système de cache via la fonction get_defined_constants () pour stocker l'état des constantes, réduisant les calculs répétés inutiles, améliorant ainsi les performances du système.

Étape 1: Comprendre la fonction get_defined_constants ()

La fonction get_defined_constants () est une fonction intégrée en PHP qui renvoie un tableau associatif contenant toutes les constantes définies et leurs valeurs. La syntaxe de cette fonction est la suivante:

 array get_defined_constants(bool $categorize = false);
  • Le paramètre de catégorie $ détermine si le tableau retourné est regroupé par catégorie. S'il est réglé sur true , il sera retourné par la catégorie des constantes; Si False (par défaut), il renverra un tableau plat contenant toutes les constantes.

Étape 2: Utilisez get_defined_constants () pour créer un système de cache

Pour améliorer les performances, nous pouvons utiliser la fonction get_defined_constants () pour créer un système de cache. Nous stockons les constantes dans un fichier de cache et lisons directement à partir du fichier de cache la prochaine fois que nous y accéderons, au lieu de le calculer via get_defined_constants () .

1. Créer un répertoire de stockage de cache

Tout d'abord, nous devons nous assurer qu'il existe un répertoire pour stocker les caches. Par exemple, vous pouvez créer un dossier appelé Cache dans le répertoire racine du projet pour stocker des caches constantes.

 $cacheDir = __DIR__ . '/cache/';
if (!file_exists($cacheDir)) {
    mkdir($cacheDir, 0777, true);
}

2. Vérifiez si le cache existe

Avant d'obtenir la constante, nous pouvons vérifier si un fichier de cache existe déjà. Si le fichier de cache existe et n'a pas expiré, les constantes du cache sont chargées directement; Sinon, get_defined_constants () est appelé à nouveau et le résultat est mis en cache.

 $cacheFile = $cacheDir . 'constants_cache.php';

if (file_exists($cacheFile) && (filemtime($cacheFile) > (time() - 3600))) {
    // Le fichier de cache existe et n'expire pas en une heure,Chargez directement le cache
    $constants = include($cacheFile);
} else {
    // Le fichier de cache n'existe pas ou a expiré,REGRER les constantes et le cache
    $constants = get_defined_constants();
    file_put_contents($cacheFile, '<?php return ' . var_export($constants, true) . ';');
}

3. Lire les constantes

Une fois la constante en cache, nous pouvons utiliser les constantes dans le cache directement où nous en avons besoin. Par exemple, lors de la gestion des constantes, nous pouvons obtenir la valeur d'une constante grâce à un simple accès à tableau.

 echo $constants['MY_CONSTANT']; // Sortir MY_CONSTANT Valeur

4. Nettoyez le cache

Pour éviter que les fichiers de cache prennent trop d'espace disque, nous pouvons nettoyer régulièrement les fichiers de cache. Vous pouvez utiliser la fonction Unlink () pour supprimer le fichier de cache ou effacer le cache dans des conditions spécifiques.

 // Cache effacer
unlink($cacheFile);

Étape 3: Exemple de code complète

Voici un exemple PHP complet montrant comment créer un système de cache simple à l'aide de get_defined_constants () :

 <?php
$cacheDir = __DIR__ . '/cache/';
$cacheFile = $cacheDir . 'constants_cache.php';

// Créer un répertoire de cache(S&#39;il n&#39;existe pas)
if (!file_exists($cacheDir)) {
    mkdir($cacheDir, 0777, true);
}

// Vérifiez si le fichier de cache existe et est valide
if (file_exists($cacheFile) && (filemtime($cacheFile) > (time() - 3600))) {
    // Le fichier de cache existe et n&#39;expire pas en une heure,Chargez directement le cache
    $constants = include($cacheFile);
} else {
    // Le fichier de cache n&#39;existe pas ou a expiré,REGRER les constantes et le cache
    $constants = get_defined_constants();
    file_put_contents($cacheFile, '<?php return ' . var_export($constants, true) . ';');
}

// Utiliser des constantes en cache
echo isset($constants['MY_CONSTANT']) ? $constants['MY_CONSTANT'] : 'Les constantes n&#39;existent pas';

?>

Résumer

En tirant parti de la fonction get_defined_constants () , nous pouvons facilement obtenir toutes les constantes dans les scripts PHP. En mettant en cache l'état des constantes, nous pouvons éviter de calculer les constantes à partir de zéro à chaque fois, améliorant ainsi les performances de l'application. Cette stratégie de mise en cache est idéale pour les scénarios où les valeurs constantes doivent être lues fréquemment.

Grâce aux étapes ci-dessus, vous pouvez simplement implémenter un système de cache constant, ce qui peut améliorer les performances tout en réduisant les frais généraux informatiques inutiles. Si vous rencontrez des goulots d'étranglement de performance lors de la construction de grands projets, envisagez d'utiliser cette approche pour optimiser la gestion des constantes.