waEvent

Обработка программных событий

Содержание...

Это класс используется фреймворком для обработки событий.

Методы

  • __construct

    Конструктор класса.

  • addCustomHandler

    Подключает динамический обработчик событий.

  • clearCache

    Очищает кеш с информацией об обработчиках событий.

  • reset

    Удаляет из оперативной памяти информацию об обработчиках событий.

  • run

    Запускает обработчики для события, указанного при создании экземпляра класса.

public function __construct ($app_id, $name, $options = [])

Конструктор класса. Можно использовать для создания экземпляра класса, чтобы вручную запустить обработку указанного события с помощью метода run().

Параметры

  • $app_id

    Идентификатор приложения, событие которого нужно обработать.

  • $name

    Событие, которое нужно обработать.

  • $options

    Дополнительные параметры. Поддерживаемые ключи и значения параметров:

    • array_keys: массив ключей массива, возвращаемого обработчиком события, для которых по умолчанию должна возвращаться пустая строка. Если указанное событие объявлено в коде приложения с непустым значением этого параметра, то создавать экземпляр класса waEvent для принудительного запуска обработчиков события нужно с таким же значением, для того чтобы избежать ошибок при использовании приложением значений, возвращаемых обработчиками события.

Пример

//в коде приложения shop событие frontend_product объявлено с массивом параметров ['menu', 'cart', 'block_aux', 'block']
//поэтому при создании экземпляра класса указываем такое же значение для аргумента $options
$event = new waEvent('shop', 'frontend_product', ['menu', 'cart', 'block_aux', 'block']);

public static function addCustomHandler ($handler)

Подключает динамический обработчик событий.

Параметры

  • $handler

    Информация об обработчике событий в виде ассоциативного массива со следующими ключами:

    • event: событие, которое должно обрабатываться.
    • event_app_id: ID приложения, событие которого должно обрабатываться. Если не указано, то указанное событие будет обрабатываться для всех приложений.
    • object: экземпляр класса, публичный нестатический метод которого должен использоваться для обработки события.
    • method: имя одного метода для обработки события — в виде строки или массив строк с именами нескольких методов, которые будут выполняться по очереди в указанном порядке.

Пример

$handler = [
    'object' => new someCustomClass(),
    'method' => 'eventHandler', // или ['eventHandler1', 'eventHandler2', ...]
    'event' => 'some_event',
    'event_app_id' => 'some_app',
];
waEvent::addCustomHandler($handler);

public static function clearCache()

Очищает кеш с информацией об обработчиках событий, который хранится в директории wa-cache/apps/system/waEvent/cache/. Кеш сохраняется, если выключен режим отладки и не определена константа WA_EVENT_CLEAR_CACHE (её можно объявить на время разработки в файле wa-config/SystemConfig.class.php).

Пример

waEvent::clearCache();

public static function reset()

Удаляет из оперативной памяти информацию об обработчиках событий. Может быть полезно во время разработки для отладки обработки событий, если кеш с информацией об обработчиках событий не сохраняется: выключен режим отладки и не определена константа WA_EVENT_CLEAR_CACHE (её можно объявить на время разработки в файле wa-config/SystemConfig.class.php).

Пример

waEvent::reset();

public function run (&$params = null)

Запускает обработчики для события, указанного при создании экземпляра класса.

Параметры

  • $params

    Параметры, которые нужно передать в обработчики события.

Пример

$event_class = new waEvent($event_app_id, $name, $options);
$result = $event_class->run($params);