BMC IO DocsBMC IO Docs
IO v6
IO v7
Notes
Docs
IO v6
IO v7
Notes
Docs
  • IO Framework v6

    • О фреймворке
    • Уроки
    • Структура
    • Доступ к участкам проекта
    • Старые версии фреймворка
    • Разворачивание нового проекта
  • Backend

    • Функции фреймворка
    • Настройки проекта (app/i.php)
    • Настройки composer
    • Глобальные переменные
    • Константы фреймворка
    • Event класс
    • IOCore класс
    • Controller и работа с ними
    • Class и работа с ними
    • Model и работа с ними
    • View и работа с ними
    • Мультиязычность и словарь фраз
    • Bin скрипты и работа с ними
    • Cron скрипты и работа с ними
    • $ioSession и работа с сессией
    • $ioSession->user и работа с пользователем
    • $ioHash и работа с кешем
    • $ioXCache и работа с кешем
    • $iodb и работа с базой данных
  • Frontend

    • Twig шаблонизатор и работа с ним
    • Twig функции
    • Twig фильтры
    • JS плагины
    • Отложенная загрузка JS скриптов
    • Обращение к Model через JS
  • Примеры

    • AutoIncrement, зависящий от полей

IO v6. Event класс

  • Описание
  • Включение показа логов
  • Выключение показа логов
  • Переменные класса
    • triggerfunc
    • echo
    • fakequery
    • loglevel
    • starttime
    • crlf
    • space
    • types
  • Методы класса
  • tablename()
  • struct()
  • start()
  • log_echo()
  • log()
  • trigger()
  • dbsearch2()

Описание

Event - класс, позволяющий проводить логирование запросов и работы проекта, а также управлять выводом логов на странице.

Класс наследуется от класса IOObject, соответственно имеет в себе его переменные и методы (см. содержимое класса).

Класс не сильно развит, и в данный момент используется только для отображения и скрытия логов, которые собираются из жестко прописанных мест в коде проектов платформы. Чаще всего этот класс нужен для выявления и исправления ошибок, возникающих в работе "общалки".

В очень старых версиях фреймворка, данный класс содержал свои данные в таблице events базы данных MySQL, но теперь работает без базы данных и нигде данные не хранит, а может только их выводить на экран.

Включение показа логов

Чтобы включить показ логов, нужно в требуемом месте прописать следующее:

Event::$echo = 1;
Event::$loglevel = 5;

Для включения показа логов всего сервиса, в файле index.php проекта нужно раскомментировать вышеуказанный код.

Выключение показа логов

Чтобы отключить показ логов, нужно в требуемом месте прописать следующее:

Event::$echo = 0;
Event::$loglevel = 0;

Для отключения показа логов всего сервиса, в файле index.php проекта нужно закомментировать код включения показа логов.

Переменные класса

triggerfunc

Название пользовательской функции для дальнейшего ее запуска, используя метод trigger().

static mixed $triggerfunc = null

echo

Включение показа логов.

static int|bool $echo = 0

fakequery

???

static int $fakequery = 0

loglevel

Уровень логов.

static int $loglevel = 3

starttime

???

static int $starttime = 0

crlf

???

static string $crlf = "<br/>\n"

space

???

static string $space = "&nbsp;"

types

Типы уровней логов.

static array $types = [
    'no' => 0,
    'fatal' => 1,
    'info' => 2,
    'error' => 3,
    'warn' => 4,
    'debug' => 5,
]

Методы класса

tablename()

Название таблицы в базе данных.

public function tablename()
{
    global $iodbtables;
    if(!isset($iodbtables['events'])) return null;
    return $iodbtables['events'];
}

ВАЖНО

Не используется. Пережитки очень старых версий фреймворка, когда данные хранились в таблице events базы данных MySQL.

struct()

Структура таблицы базы данных.

public function struct()
{
    return [
        'fields' => [
            'pkid' => [
                'type' => 'sql',
            ],
            'gmtimeAdd' => [
                'type' => 'sql',
            ],
            'gmtimeChange' => [
                'type' => 'sql'
            ],
            
            // Краткое описание сообщения
            'text' => [
                'type' => 'sql',
            ],
            
            // Длинное сообщение
            'message' => [
                'type' => 'sql',
            ],
            
            /* 
            Тип 
            sql - запросы БД
            system - системные сообщения
            event - события
            */
            'type' => [
                'type' => 'sql',
                'default' => 'event',
            ],
            
            // Модуль уведомлений
            'module' => [
                'type' => 'sql',
                'default' => '',
            ],
            
            // Уровень важности от 0 - 5
            'level' => [
                'type' => 'sql',
                'default' => '2',
            ],
            
            'recipient' => [
                'type' => 'sql',
                'default' => null,
            ],
            'from' => [
                'type' => 'sql',
                'default' => null,
            ],
        ],
        'primary' => [
            0 => 'pkid',
        ],
    ];
}

ВАЖНО

Не используется. Пережитки очень старых версий фреймворка, когда данные хранились в таблице events базы данных MySQL.

start()

Фиксирует время в переменной $starttime.

static start(): void

log_echo()

Позволяет выводить текст лога в нужном месте. Текст будет отображаться при переменной $echo = 1.

static log_echo(
    array $params
): void
Аргумент функцииТипОписаниеОбязательный
$paramsarrayПередаваемые параметры.Да

$params:

ПараметрТипОписаниеЗначение по умолчаниюОбязательный
'module'stringНазвание модуля.Да
'level'string|intУроверь лога.Да
'msg', 'message'stringТекст для вывода.''Да

Пример:

Event::log_echo([
    'module' => 'trade',
    'level' => 3,
    'msg' => 'some log text...',
);

log()

Позволяет выводить текст лога в нужном месте. Текст будет отображаться при переменной $echo = 1.

static log(
    array $params
): void
Аргумент функцииТипОписаниеОбязательный
$paramsarrayПередаваемые параметры.Да

$params:

ПараметрТипОписаниеЗначение по умолчаниюОбязательный
'module'stringНазвание модуля.''Нет
'type'string???'system'Нет
'level'string|intУровень логов (ключ из переменной $types)'no'Нет
'msg', 'message'stringТекст для вывода.''Нет
'recipient'string??? (в теле метода не используется).Нет
'from'string??? (в теле метода не используется).Нет

Пример:

Event::log([
    'msg' => 'some log text...',
);

trigger()

Вызов триггерной функции с передачей в нее параметров.

Перед ее вызовом в переменную $triggerfunc нужно прописать название существующей функции.

function myfunc($arr)
{
    var_dump($arr);
}

Event::$triggerfunc = 'myfunc';
Event::trigger([
    'hello' => 'world',
]);

ВАЖНО

Не используется. Пережитки очень старых версий фреймворка.

dbsearch2()

Поиск записей в таблице базы данных.

static dbsearch2(array $arr, $outclass = null): array

ВАЖНО

Не используется. Пережитки очень старых версий фреймворка, когда данные хранились в таблице events базы данных MySQL.

Prev
Константы фреймворка
Next
IOCore класс