| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <?php
- if (!class_exists('AppDebugger')) {
- class AppDebugger {
- /**
- * Enregistre un gestionnaire global pour les erreurs et exceptions.
- */
- public static function register() {
- set_error_handler([self::class, 'handleError']);
- set_exception_handler([self::class, 'handleException']);
- }
- /**
- * Gère les erreurs PHP.
- *
- * @param int $errno
- * @param string $errstr
- * @param string $errfile
- * @param int $errline
- */
- public static function handleError($errno, $errstr, $errfile, $errline) {
- self::log('ERROR', "Erreur : $errstr dans $errfile à la ligne $errline");
- self::displayIfDebug("Erreur : $errstr", 'Erreur PHP');
- }
- /**
- * Gère les exceptions non capturées.
- *
- * @param Throwable $exception
- */
- public static function handleException($exception) {
- self::log('EXCEPTION', "Exception : " . $exception->getMessage());
- self::displayIfDebug($exception->getMessage(), 'Exception non capturée');
- }
- /**
- * Affiche les informations de débogage dans un format lisible si le mode debug est activé.
- *
- * @param mixed $data Les données à afficher.
- * @param string $label (Optionnel) Un label pour identifier les données.
- */
- public static function displayIfDebug($data, $label = 'Debug') {
- $config = require __DIR__ . '/../../config/config.php';
- if ($config['debug'] && ($label === 'Erreur PHP' || $label === 'Exception non capturée')) {
- echo '<div style="background-color: #f8f9fa; border: 1px solid #dee2e6; padding: 10px; margin: 10px; font-family: monospace;">';
- echo '<strong style="color: #495057;">' . htmlspecialchars($label) . ':</strong><pre style="color: #212529;">';
- echo htmlspecialchars(print_r($data, true));
- echo '</pre></div>';
- }
- }
- /**
- * Enregistre un message dans les logs.
- *
- * @param string $level Niveau du log (INFO, WARNING, ERROR, EXCEPTION).
- * @param string $message Message à enregistrer.
- */
- public static function log($level, $message) {
- Logger::log($level, $message);
- }
- }
- }
|