phpBB3Функция trigger_error ()

Ошибок не избежать

Функция trigger_error () в коде phpBB 3 используется повсеместно. Я решил в этой заметке сделать более подробный обзор этой функции.

Сегодня мы рассмотрим синтаксис, возможные параметры, а также примеры использования.

trigger_error () генерирует ошибки/предупреждения/замечания или непосредственно страницу с каким-нибудь сообщением, например, «Ваша тема была успешно создана».

  

Синтаксис

 bool trigger_error ( string $error_msg [, int $error_type ] )

После выполнения данная функция завершает выполнение скрипта. Функция использует шаблон message_body.html при генерации ответа.

Параметры

error_msg
Сообщение об ошибке, которое будет возвращаться пользователю. Помните, что использовать напрямую вывод текстовых строк крайне нежелательно. Используйте языковые переменные.

error_type
Тип ошибки. По умолчанию установлено в E_USER_NOTICE. Может быть трех типов: E_USER_NOTICE, E_USER_WARNING, and E_USER_ERROR.

  • E_USER_NOTICE — Используется в ситуациях, когда нужно сообщить пользователю какую либо информацию. Например, об успешном завершении авторизации. В администраторском аккаунте использование E_USER_NOTICE выводит зеленый информационный блок.
  • E_USER_WARNING — Используется, когда нужно сообщить об ошибке. Для пользователей клиентской части сообщение выглядит точно так же, как и для E_USER_NOTICE. Но в администраторском аккаунте E_USER_WARNING выводит красный информационный блок.
  • E_USER_ERROR — Должно использоваться только для серверных ошибок. Например, если сессия пользователя недоступна. Или если произошла ошибка SQL.

Примеры использования

Использование E_USER_NOTICE (пользовательской ошибки)

// Проверка какого-либо значения.
if (!$email)
{
    // Так делать нельзя. Лучше использовать языковые переменные.
    trigger_error('Вы не ввели e-mail адрес');
}

Использование E_USER_ERROR (серверной ошибки)

switch ($mode)
{
    // Здесь какой-либо код...
 
    // default вызывается, если никакой вариант switch`а не подошел.
    // В нашем коде под этим подразумевается какая-либо ошибка, так как
    // при нормальном функционировании скрипта этого произойти не должно.
    default:
 
        // Сообщаем об ошибке, используя языковую переменную.
        // Используем E_USER_ERROR, так как это серъезная ошибка, и требует
        // вмешательства администратора.
        trigger_error($user->lang['NO_MODE'], E_USER_ERROR);
    break;
}

Примечания

В phpBB 3 используется функция set_error_handler () для перехвата trigger_error ().


Есть что сказать?
Ваше имя:
Ваш e-mail:
Ваш сайт:
Ваше мнение:




земляные работы в Донецке