Common\Core\Model::triggerEvent PHP Метод

triggerEvent() публичный статический Метод

Trigger an event
Устаревший: use the symfony event dispatcher instead
public static triggerEvent ( string $module, string $eventName, mixed $data = null )
$module string The module that triggers the event.
$eventName string The name of the event.
$data mixed The data that should be send to subscribers.
    public static function triggerEvent($module, $eventName, $data = null)
    {
        $module = (string) $module;
        $eventName = (string) $eventName;
        // create log instance
        $log = self::getContainer()->get('logger');
        $log->info('Event (' . $module . '/' . $eventName . ') triggered.');
        // get all items that subscribe to this event
        $subscriptions = (array) self::getContainer()->get('database')->getRecords('SELECT i.module, i.callback
             FROM hooks_subscriptions AS i
             WHERE i.event_module = ? AND i.event_name = ?', array($module, $eventName));
        // any subscriptions?
        if (!empty($subscriptions)) {
            // init var
            $queuedItems = array();
            // loop items
            foreach ($subscriptions as $subscription) {
                // build record
                $item['module'] = $subscription['module'];
                $item['callback'] = $subscription['callback'];
                $item['data'] = serialize($data);
                $item['status'] = 'queued';
                $item['created_on'] = self::getUTCDate();
                // add
                $queuedItems[] = self::getContainer()->get('database')->insert('hooks_queue', $item);
                $log->info('Callback (' . $subscription['callback'] . ') is subscribed to event (' . $module . '/' . $eventName . ').');
            }
            // start processing
            self::startProcessingHooks();
        }
    }