/** * dispatch global and local model events * no event objects created if no listeners attached * return false if some event stop propagation (means u need to cancel dependent actions) * @param string $eventName * @return bool */ protected function eventDispatch($eventName) { if (Model::events()->hasListeners($eventName)) { $e = new Event($this); Model::events()->dispatch($eventName, $e); if ($e->isPropagationStopped()) { return false; } } if ($this->metadata->events()->hasListeners($eventName)) { if (!isset($e)) { $e = new Event($this); } $this->metadata->events()->dispatch($eventName, $e); if ($e->isPropagationStopped()) { return false; } } return true; }