code: public function trigger($name, Event $event = null)
      {
          $this->ensureBehaviors();
  
          $eventHandlers = [];
          foreach ($this->_eventWildcards as $wildcard => $handlers) {
              if (StringHelper::matchWildcard($wildcard, $name)) {
                  $eventHandlers = array_merge($eventHandlers, $handlers);
              }
          }
  
          if (!empty($this->_events[$name])) {
              $eventHandlers = array_merge($eventHandlers, $this->_events[$name]);
          }
  
          if (!empty($eventHandlers)) {
              if ($event === null) {
                  $event = new Event();
              }
              if ($event->sender === null) {
                  $event->sender = $this;
              }
              $event->handled = false;
              $event->name = $name;
              foreach ($eventHandlers as $handler) {
                  $event->data = $handler[1];
                  call_user_func($handler[0], $event);
                  // stop further handling if the event is handled
                  if ($event->handled) {
                      return;
                  }
              }
          }
  
          // invoke class-level attached handlers
          Event::trigger($this, $name, $event);
      }
docs: Triggers an event.
  This method represents the happening of an event. It invokes
  all attached handlers for the event including class-level handlers.
  @param string $name the event name
  @param Event $event the event parameter. If not set, a default [[Event]] object will be created.