diff --git a/Database/Base/BaseActiveRecord.php b/Database/Base/BaseActiveRecord.php index 9bdfa0e7..9c11189e 100644 --- a/Database/Base/BaseActiveRecord.php +++ b/Database/Base/BaseActiveRecord.php @@ -495,7 +495,7 @@ abstract class BaseActiveRecord extends Component implements IOrm, ArrayAccess return false; } - if (!$this->event->dispatch(self::BEFORE_SAVE, [$this])) { + if (!$this->event->dispatch(self::BEFORE_SAVE, [$this], $this)) { return false; } diff --git a/System/Abstracts/Component.php b/System/Abstracts/Component.php index 9073e49e..7515159b 100644 --- a/System/Abstracts/Component.php +++ b/System/Abstracts/Component.php @@ -12,6 +12,8 @@ namespace Snowflake\Abstracts; use Exception; +use JetBrains\PhpStorm\Pure; +use Snowflake\Exception\ComponentException; use Snowflake\Snowflake; /** @@ -50,7 +52,7 @@ class Component extends BaseObject * @param null $callback * @return bool */ - public function hasEvent($name, $callback = null): bool + #[Pure] public function hasEvent($name, $callback = null): bool { if (!isset($this->_events[$name])) { return false; @@ -97,6 +99,7 @@ class Component extends BaseObject * @param $name * @param null $handler * @return void + * @throws ComponentException */ public function off($name, $handler = NULL): void { diff --git a/System/Event.php b/System/Event.php index ddc7ce49..3f522334 100644 --- a/System/Event.php +++ b/System/Event.php @@ -174,11 +174,12 @@ class Event extends BaseObject /** * @param $name * @param array $params - * @return mixed + * @param null $scope + * @return bool */ - public function dispatch($name, $params = []): mixed + public function dispatch($name, $params = [], $scope = null): bool { - return $this->trigger($name, $params); + return $this->trigger($name, $params, $scope); }