Lors du débogage dans un projet PHP, nous devons souvent voir quelles constantes sont actuellement définies, en particulier dans les grands projets ou environnements où plusieurs bibliothèques tierces sont intégrées. get_defined_constants () est une fonction intégrée fournie par PHP qui peut nous aider à obtenir toutes les constantes définies, y compris les constantes par défaut du système, chargées étendues et définies par l'utilisateur. Cet article présentera comment utiliser cette fonction pour créer un tableau de bord de débogage simple et pratique pour aider les développeurs à comprendre rapidement l'état du système et les informations de configuration.
get_defined_constants () Renvoie un tableau associatif où la clé est le nom de la constante et la valeur est la valeur de la constante. En transmettant de vrais paramètres, nous pouvons classer ces constantes par module, par exemple:
print_r(get_defined_constants(true));
La sortie de cette fonction sera regroupée par module, telles que le noyau, la date, le PCRE, l'utilisateur, etc., ce qui est très utile pour comprendre la source des constantes.
L'objectif de débogage de tableaux de bord est d'afficher visuellement diverses informations sur l'environnement de développement et d'opération. En utilisant get_defined_constants () , nous pouvons créer une page HTML qui répertorie toutes les constantes actuellement définies, en particulier les constantes définies par l'utilisateur dans le module "utilisateur".
De plus, nous pouvons également créer une interface de débogage complète avec d'autres fonctions telles que phpinfo () , ini_get_all () , $ _server, etc., mais cet article se concentrera sur l'affichage de la partie constante.
Voici un simple script PHP qui génère des pages de tableau de bord de débogage et affiche diverses informations constantes sous forme tabulaire:
<?php
// Obtenez toutes les constantes définies,Et classé par module
$constants = get_defined_constants(true);
// HTML En-tête de sortie
echo '<!DOCTYPE html><html lang="zh"><head><meta charset="UTF-8">';
echo '<title>PHP Tableau de bord de débogage constant</title>';
echo '<style>
body { font-family: Arial, sans-serif; margin: 20px; }
h2 { background-color: #f0f0f0; padding: 10px; }
table { width: 100%; border-collapse: collapse; margin-bottom: 30px; }
th, td { border: 1px solid #ccc; padding: 8px; text-align: left; }
th { background-color: #e0e0e0; }
</style></head><body>';
echo '<h1>PHP Tableau de bord de débogage constant</h1>';
// Itérer dans chaque module
foreach ($constants as $category => $consts) {
echo "<h2>Module:{$category}</h2>";
echo '<table>';
echo '<tr><th>Nom constant</th><th>valeur</th></tr>';
foreach ($consts as $name => $value) {
$displayValue = htmlspecialchars(var_export($value, true));
echo "<tr><td>{$name}</td><td>{$displayValue}</td></tr>";
}
echo '</table>';
}
echo '</body></html>';
Sécurité : l'affichage de toutes les constantes dans un environnement public peut révéler des informations sensibles (telles que les clés, les chemins, etc.). Il est recommandé que cette page soit activée uniquement dans l'environnement de développement ou ajoute un mécanisme d'authentification.
Problèmes de performances : bien que get_defined_constants () ait lui-même peu d'impact sur les performances, dans des projets avec beaucoup de constantes, la génération et le rendu peuvent provoquer le bégaiement du navigateur. Vous pouvez envisager d'ajouter de la pagination ou de l'expansion à la demande.
Pour déboguer les serveurs distants de manière plus flexible, vous pouvez encapsuler la page ci-dessus en tant que portail de débogage protégé par mot de passe, par exemple:
<?php
$token = $_GET['token'] ?? '';
if ($token !== 'your-secret-token') {
http_response_code(403);
exit('Access Denied');
}
// Puis sur le tableau de bord de débogage
En visitant https://debug.m66.net/dashboard.php?token=your-secret-Token , vous pouvez afficher le statut constant à distance. Cette méthode peut également obtenir une expérience de débogage visuel sans installer des outils de débogage complexes.
get_defined_constants () est un outil puissant qui est ignoré par de nombreux développeurs. Avec un emballage simple, vous pouvez créer un tableau de bord de débat entièrement fonctionnel et facile à utiliser. Il vous aide non seulement à comprendre l'état de fonctionnement du système, mais fournit également des informations critiques lors du dépannage des problèmes de configuration. Le débogage n'est plus un aveugle qui touche un éléphant, mais visuellement contrôlable. L'intégrer dans votre boîte à outils de développement rendra certainement le fonctionnement plus efficace.