Au cours du processus de développement, les informations de débogage sont cruciales pour les enquêtes par problème. Nous utilisons généralement Echo , var_dump , print_r , etc. pour imprimer des informations de débogage. Mais lorsque nous rencontrons une erreur dans le code, nous devrons peut-être imprimer les informations de débogage pertinentes tout en interrompant l'exécution du script. À l'heure actuelle, la fonction de sortie devient un outil très important, qui peut interrompre l'exécution continue du script. Alors, comment utiliser la sortie pour imprimer des informations de débogage? Pouvons-nous toujours afficher les journaux lorsque le script est interrompu? Cet article vous donnera une réponse détaillée.
Dans PHP, la fonction exit () est utilisée pour terminer l'exécution du script actuel. Il peut accepter une chaîne comme paramètre, sortir les informations de chaîne lorsque le script est terminé ou renvoyer un code d'état de sortie:
<span><span><span class="hljs-keyword">exit</span></span><span>(</span><span><span class="hljs-string">"Script terminated with this message"</span></span><span>);
</span></span>
Ou simplement passer un code d'état de sortie (généralement un entier):
<span><span><span class="hljs-keyword">exit</span></span><span>(</span><span><span class="hljs-number">0</span></span><span>); </span><span><span class="hljs-comment">// Sortir normalement</span></span><span>
</span><span><span class="hljs-keyword">exit</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>); </span><span><span class="hljs-comment">// arrêter de façon inattendue</span></span><span>
</span></span>
Exit () interdit non seulement l'exécution du script, mais peut également être utilisé pour renvoyer un code de sortie pour référence par des systèmes externes ou d'autres scripts.
Pendant le débogage, il peut être nécessaire d'arrêter l'exécution à un emplacement spécifique dans le script et les informations de débogage de sortie. Pour le moment, nous pouvons passer des informations de débogage en sortie pour faciliter le positionnement rapide des problèmes.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Simuler un code</span></span><span>
</span><span><span class="hljs-variable">$variable</span></span><span> = </span><span><span class="hljs-string">"Test value"</span></span><span>;
</span><span><span class="hljs-comment">// Imprimez les informations de débogage ici et abandonnez le script</span></span><span>
</span><span><span class="hljs-keyword">exit</span></span><span>(</span><span><span class="hljs-string">"Debug Info: Variable value is <span class="hljs-subst">{$variable}</span></span></span><span>");
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Dans le code ci-dessus, lors de l'exécution pour quitter () , PHP sortira "Debug Info: La valeur de la variable est la valeur de test" et terminera l'exécution du script. De cette façon, vous pouvez publier des informations utiles lorsque le code est exécuté à un emplacement spécifique, tout en vous assurant que le script s'arrête afin de ne pas continuer à exécuter du code inutile.
Dans le développement réel, les informations de débogage ne sont souvent pas destinées à être directement sorties vers le navigateur, en particulier dans les environnements de production. Pour éviter la fuite d'informations sensibles, nous pouvons utiliser la fonction PHP Error_Log pour enregistrer les informations de débogage dans un fichier journal. De cette façon, nous pouvons toujours afficher les informations de débogage dans le journal même lorsque le script est interrompu.
La fonction error_log () peut écrire des informations dans le journal d'erreur de PHP ou personnaliser les fichiers journaux. Voici un exemple:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$variable</span></span><span> = </span><span><span class="hljs-string">"Test value"</span></span><span>;
</span><span><span class="hljs-comment">// Rédiger des informations de débogage à PHP Journal d'erreur</span></span><span>
</span><span><span class="hljs-title function_ invoke__">error_log</span></span><span>(</span><span><span class="hljs-string">"Debug Info: Variable value is <span class="hljs-subst">{$variable}</span></span></span><span>", </span><span><span class="hljs-number">0</span></span><span>);
</span></span>
Dans cet exemple, les informations de débogage sont écrites dans le journal d'erreur par défaut de PHP. Vous pouvez trouver la directive Error_Log dans la configuration PHP.ini pour déterminer l'emplacement des journaux.
Si vous souhaitez rédiger des informations de débogage dans un fichier journal personnalisé, vous pouvez spécifier le chemin du fichier:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$variable</span></span><span> = </span><span><span class="hljs-string">"Test value"</span></span><span>;
</span><span><span class="hljs-comment">// Rédiger des informations de débogage à指定的日志文件</span></span><span>
</span><span><span class="hljs-title function_ invoke__">error_log</span></span><span>(</span><span><span class="hljs-string">"Debug Info: Variable value is <span class="hljs-subst">{$variable}</span></span></span><span>", </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">"/path/to/custom_log.log"</span></span><span>);
</span></span>
Ici, les informations de journal seront écrites dans le fichier /path/to/custom_log.log au lieu du journal d'erreur PHP par défaut.
Nous pouvons combiner la sortie et la journalisation. Lorsque nous avortions le script, nous enregistrons d'abord les informations de débogage dans le fichier journal, puis interdisons l'exécution du script via exit () .
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$variable</span></span><span> = </span><span><span class="hljs-string">"Test value"</span></span><span>;
</span><span><span class="hljs-comment">// Rédiger des informations de débogage au journal</span></span><span>
</span><span><span class="hljs-title function_ invoke__">error_log</span></span><span>(</span><span><span class="hljs-string">"Debug Info: Variable value is <span class="hljs-subst">{$variable}</span></span></span><span>", </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">"/path/to/custom_log.log"</span></span><span>);
</span><span><span class="hljs-comment">// Terminer l'exécution du script</span></span><span>
</span><span><span class="hljs-keyword">exit</span></span><span>(</span><span><span class="hljs-string">"Script terminated, debug info logged."</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Ce code rédigera d'abord les informations de débogage dans le fichier journal, puis terminera le script via exit () et affichera un message d'invite.
Il y a plusieurs aspects à noter lors du débogage à l'aide de la sortie et de la journalisation:
ATTENTION DANS L'ENVIRONNEMENT DE PRODUCTION : Dans l'environnement de production, il est préférable d'éviter d'utiliser OUT () pour produire directement les informations de débogage, car elle interrompra l'exécution de toute la page et exposera l'état interne. Il est généralement recommandé d'écrire des informations de débogage dans le fichier journal pour éviter d'affecter l'expérience utilisateur.
Autorisations du fichier journal : Assurez-vous que PHP a la permission d'écrire aux fichiers journaux. S'il n'y a pas d'autorisation, error_log () ne pourra pas se connecter.
Nettoyer les informations de débogage : pendant la phase de développement, les informations de débogage aident à localiser rapidement les problèmes, mais avant de vous rendre en ligne, assurez-vous que ces codes de débogage sont effacés, ou du moins assurez-vous que les informations de débogage ne sont pas exposées aux utilisateurs.
Gestion des fichiers journaux : si le fichier journal est trop important, cela peut affecter les performances du serveur. Il est recommandé de nettoyer ou de faire tourner les fichiers de journal régulièrement pour éviter les journaux occupant l'espace disque.
En combinant les fonctions de sortie et d'erreur_log , les développeurs PHP peuvent enregistrer de manière flexible les informations de débogage dans les fichiers journaux tout en interrompant l'exécution du script. Cela aide non seulement à résoudre les problèmes, mais garantit également que les informations inutiles ne sont pas exposées dans l'environnement de production. Que ce soit dans le développement local ou les environnements de production, l'utilisation rationnelle des interruptions de journalisation et de débogage est un moyen efficace d'améliorer l'efficacité du développement et la stabilité du programme.