Отладка

Плагин Error Monitor & Notifier оповещает об ошибках в коде PHP-скриптов, JavaScript-коде и при запросах к базе данных WordPress независимо от настроек отладки в файле конфигурации wp-config.php.

Разработчикам не потребуется включать режим отладки путём определения константы define('WP_DEBUG', true); или выполнять другую конфигурацию вручную.

Примечание: Плагин переключает механизм уведомлений об ошибках в режим error_reporting(E_ALL); при инициализации, чтобы ядро PHP сообщало обо всех типах ошибок, и восстанавливает предыдущий уровень внутренних уведомлений после обработки ошибок.

Выбор типов ошибок, о которых плагин уведомит, доступен на странице настроек плагина.

Скриншот блока настройки типов ошибок
Скриншот блока настройки типов ошибок

Пользовательская отладочная информация

Метод addDebugInfo()

С версии 1.1.10 в плагине доступен статический метод публичного API — \Enot\Enot::addDebugInfo(string $message, string $group = 'default'): void;, который добавляет пользовательскую информацию для отладки в уведомление об ошибке. Отладочная информация сохраняется во внутренней переменной и включается в оповещение об ошибке, если такая возникает.

/**
 * Добавим в коде какого-то плагина или темы информацию для отладки,
 * которую требуется получить в уведомлении об ошибке, если такая возникнет.
 * Названия группы данных об отладке указываются произвольно.
 *
 * Обернем вызов метода функцией method_exists,
 * чтобы код не выдавал ошибок при отключении плагина.
 */

// Добавим к уведомлению об ошибке информацию о запросе к БД
if (method_exists('\Enot\Enot', 'addDebugInfo')) {
    \Enot\Enot::addDebugInfo("The last WP DB query: `{$wpdb->last_query}`", 'db');
}

// Добавим сведения о переменной
if (method_exists('\Enot\Enot', 'addDebugInfo')) {
    \Enot\Enot::addDebugInfo(
        sprintf('The type of the $foo is: %s', get_debug_type($foo)),
        'info'
    );
}

Теперь при ошибке или исключении в состав уведомления дополнительно включается массив наподобие:

array (
  'db' => 
  array (
    0 => 
    array (
      'time' => 1749461550.0192,
      'message' => 'The last WP DB query: `SELECT * FROM wp_users`',
    ),
  ),
  'info' => 
  array (
    0 => 
    array (
      'time' => 1749461550.0211,
      'message' => 'The type of the $foo is: object',
    ),
  ),
)

Фильтрация пользовательской отладочной информации

Для фильтрации массива с отладочной информацией разработчикам доступен хук enot_filter_custom_debug_info:

// Оставим только отладочные сообщения
\add_filter(
    'enot_filter_custom_debug_info',
    static function (array $debug_info) {
        return array_reduce(
            $debug_info,
            static fn(array $carry, array $group) => array_merge($carry, array_column($group, 'message')),
            [],
        );
    },
    10,
    1
);
// Array
// (
//    [0] => The last WP DB query: `SELECT * FROM wp_users`
//    [1] => The type of the $foo is: object
// )

Очистка пользовательской информации для отладки

Для очистки пользовательской отладочной информации в плагине предусматривается метод public static function clearDebugInfo(string|array $groups = ''): void;, который очищает отдельную группу, заданную в параметре $groups, или всю отладочную информацию, если параметр не установили.

Извлечение пользовательской отладочной информации

Метод public static function getDebugInfo(): array; возвращает массив с текущей пользовательской отладочной информацией.

1
    1
    Cart
    WP Error Notifier Logo
    Полнофункциональный плагин Error Monitor & Notifier Premium 1.1.10 для WordPress: мониторинг ошибок в коде и БД-запросах с оповещением о сбоях
    Сайты:

    Один сайт и поддомены

    1 X Original price was: 2 990 ₽.Current price is: 990 ₽. = 990 
    Scroll to Top