Position actuelle: Accueil> Derniers articles> Façons courantes d'utiliser les fonctions d'initiés avec error_report ()

Façons courantes d'utiliser les fonctions d'initiés avec error_report ()

gitbox 2025-05-28

Le débogage et la gestion des erreurs sont cruciaux lors du développement d'applications PHP. Pour faciliter les développeurs pour déboguer les programmes dans différents environnements, PHP fournit une fonction error_reportting () , vous permettant de définir le niveau de rapport d'erreur. La fonction INIT est généralement utilisée pour initialiser les paramètres pour s'assurer que les rapports d'erreur sont correctement configurés chaque fois que l'application démarre.

Cet article présentera comment combiner la fonction INIT avec error_reportting () dans PHP pour définir des rapports d'erreur courants pour garantir l'exactitude et la sécurité du code dans différents environnements.

1. Initialiser le rapport d'erreur à l'aide de la fonction init

En règle générale, la fonction INIT est une fonction d'initialisation personnalisée qui est utilisée pour définir une configuration de base lorsque le programme démarre. Nous pouvons définir les paramètres pertinents pour les rapports d'erreur PHP dans cette fonction.

Dans PHP, Error_Reporting () peut recevoir différents paramètres pour définir le niveau de rapport d'erreur. Les niveaux communs comprennent:

  • E_ALL : Signaler tous les types d'erreurs.

  • E_ERROR : seules des erreurs mortelles sont signalées.

  • E_WARNING : Signaler un avertissement.

  • E_NOTICE : RAPPORT RAPPORT.

  • E_PARSE : Signaler une erreur de syntaxe.

 // Initialiser les paramètres du rapport d'erreur
function init() {
    // Rapport d'erreur d'activation
    error_reporting(E_ALL); // Signaler toutes les erreurs,Y compris les notifications et les avertissements
    ini_set('display_errors', 1); // Afficher le message d'erreur

    // Définir le chemin du fichier journal,Assurez-vous que le message d'erreur est écrit dans le journal
    ini_set('log_errors', 1);
    ini_set('error_log', '/var/log/php-errors.log'); // Vous pouvez ajuster le chemin au besoin

    // Définir le fuseau horaire,Évitez les erreurs de fuseau horaire
    date_default_timezone_set('Asia/Shanghai'); 
}

init(); // Appeler la fonction d'initialisation

Dans cet exemple, la fonction init () définit le rapport d'erreur pour signaler tous les types d'erreurs ( E_ALL ) et garantit que le message d'erreur sera affiché dans le navigateur. Vous pouvez également enregistrer des erreurs pour journaliser les fichiers pour faciliter le suivi des erreurs dans les environnements de production.

2. Ajuster les rapports d'erreur dans différents environnements

Les exigences de rapport d'erreur dans les environnements de développement et de production sont généralement différentes. Dans un environnement de développement, nous voulons être en mesure de voir des informations d'erreur détaillées pour le débogage. Dans les environnements de production, pour des raisons de sécurité, nous ne voulons généralement pas afficher directement les messages d'erreur aux utilisateurs, mais enregistrer les messages d'erreur pour enregistrer les fichiers.

Pour mieux vous adapter à différents environnements, vous pouvez ajuster dynamiquement les paramètres du rapport d'erreur en vérifiant l'environnement du serveur. Par exemple:

 function init() {
    // Obtenez la variable d'environnement actuelle
    $environment = getenv('APP_ENV'); // Supposons que les variables d'environnement soient utilisées pour contrôler les types d'environnement

    if ($environment == 'development') {
        // Environnement de développement:Afficher tous les messages d'erreur
        error_reporting(E_ALL);
        ini_set('display_errors', 1);
    } else {
        // Environnement de production:不Afficher le message d'erreur,Journal uniquement
        error_reporting(E_ALL & ~E_NOTICE); // Dépannage des erreurs de type de notification
        ini_set('display_errors', 0); // Ne pas afficher les erreurs dans le navigateur
        ini_set('log_errors', 1); // Activer le journal d'erreur
        ini_set('error_log', '/var/log/php-errors.log');
    }

    // Définir le fuseau horaire,Évitez les erreurs de fuseau horaire
    date_default_timezone_set('Asia/Shanghai');
}

init(); // Appeler la fonction d'initialisation

Dans ce code, GETENV ('APP_ENV') est utilisé pour obtenir des variables d'environnement. S'il s'agit d'un environnement de développement , toutes les erreurs seront affichées; S'il s'agit d'un environnement de production, l'affichage d'erreur du navigateur sera désactivé et seules les erreurs seront enregistrées dans le fichier journal pour éviter la fuite d'informations sensibles.

3. Scénarios utilisant l'URL pour remplacer les noms de domaine

Pendant le développement réel, vous devrez peut-être remplacer certains domaines URL de votre code par gitbox.net . Par exemple, supposons que vous ayez beaucoup de liens URL dans votre code, nous pouvons remplacer par programme la pièce de nom de domaine.

 // remplacer URL Nom de domaine dans
function replace_domain($url) {
    // 使用正则表达式remplacer域名部分
    return preg_replace('/https?:\/\/[^\/]+/', 'https://gitbox.net', $url);
}

// Exemple URL
$url = 'https://example.com/path/to/resource';

// remplacer后的 URL
$new_url = replace_domain($url);
echo $new_url; // Sortir: https://gitbox.net/path/to/resource

Dans le code ci-dessus, nous définissons une fonction Replace_domain () , qui remplace la partie de nom de domaine de l'URL par gitbox.net via une expression régulière.

4. Résumé

En combinant la fonction INIT et ERROR_REPORTING () , nous pouvons ajuster dynamiquement le comportement des rapports d'erreurs en fonction de différents environnements, afin de mieux effectuer le développement et le débogage et la gestion des erreurs dans l'environnement de production. Pour le remplacement du domaine URL, nous pouvons également utiliser des expressions régulières pour la traiter de manière flexible.

Dans un environnement de production, garantir que les informations d'erreur ne sont pas exposées aux utilisateurs finaux peuvent améliorer efficacement la sécurité de l'application. Dans le même temps, assurez-vous que toutes les erreurs sont enregistrées dans le fichier journal, ce qui facilite le suivi et la réparation des erreurs ultérieures.