diff --git a/Annotation/Aspect.php b/Annotation/Aspect.php index 5baea1dd..35442f05 100644 --- a/Annotation/Aspect.php +++ b/Annotation/Aspect.php @@ -4,6 +4,7 @@ namespace Annotation; +use Exception; use Snowflake\Aop; use Snowflake\IAspect; use Snowflake\Snowflake; @@ -27,21 +28,23 @@ defined('ASPECT_ERROR') or define('ASPECT_ERROR', 'Aspect annotation must implem } - /** - * @param array $handler - * @return mixed - */ + /** + * @param array $handler + * @return mixed + * @throws Exception + */ public function execute(array $handler): mixed { - if (!in_array(IAspect::class, class_implements($this->aspect))) { - throw new \Exception(ASPECT_ERROR . IAspect::class); + // TODO: Change the autogenerated stub + if (!in_array(IAspect::class, class_implements($this->aspect))) { + throw new Exception(ASPECT_ERROR . IAspect::class); } /** @var Aop $aop */ $aop = Snowflake::app()->get('aop'); $aop->aop_add($handler, $this->aspect); - return parent::execute($handler); // TODO: Change the autogenerated stub + return parent::execute($handler); } diff --git a/System/Aop.php b/System/Aop.php index e34b2433..779dc04e 100644 --- a/System/Aop.php +++ b/System/Aop.php @@ -4,7 +4,10 @@ namespace Snowflake; +use Exception; +use ReflectionException; use Snowflake\Abstracts\Component; +use Snowflake\Exception\NotFindClassException; defined('ASPECT_ERROR') or define('ASPECT_ERROR', 'Aspect annotation must implement '); @@ -20,10 +23,10 @@ class Aop extends Component private array $_aop = []; - /** - * @param $className - * @param null $method - */ + /** + * @param array $handler + * @param string $aspect + */ public function aop_add(array $handler, string $aspect) { [$class, $method] = $handler; @@ -35,11 +38,13 @@ class Aop extends Component } - /** - * @return mixed|void - * @throws \ReflectionException - */ - final public function dispatch() + /** + * @return mixed + * @throws NotFindClassException + * @throws ReflectionException + * @throws Exception + */ + final public function dispatch(): mixed { $get_args = func_get_args(); if (($close = array_shift($get_args)) instanceof \Closure) { @@ -53,7 +58,7 @@ class Aop extends Component $reflect = Snowflake::getDi()->getReflect($this->_aop[$aopName]); if (!$reflect->isInstantiable() || !$reflect->hasMethod('invoke')) { - throw new \Exception(ASPECT_ERROR . IAspect::class); + throw new Exception(ASPECT_ERROR . IAspect::class); } $method = $reflect->getMethod('invoke');