diff --git a/Annotation/Annotation.php b/Annotation/Annotation.php index e26c3992..9a76acd6 100644 --- a/Annotation/Annotation.php +++ b/Annotation/Annotation.php @@ -5,6 +5,7 @@ namespace Annotation; use ReflectionAttribute; +use ReflectionClass; use ReflectionException; use Snowflake\Abstracts\Component; use Snowflake\Snowflake; @@ -116,9 +117,9 @@ class Annotation extends Component } /** - * @param \ReflectionClass $reflect + * @param ReflectionClass $reflect */ - private function targets(\ReflectionClass $reflect) + private function targets(ReflectionClass $reflect) { $attributes = $reflect->getAttributes(); if (count($attributes) < 1) { diff --git a/Annotation/Socket.php b/Annotation/Socket.php index 51b87eed..aec9fccd 100644 --- a/Annotation/Socket.php +++ b/Annotation/Socket.php @@ -4,6 +4,11 @@ namespace Annotation; +use Closure; +use HttpServer\Route\Node; +use Snowflake\Exception\ComponentException; +use Snowflake\Snowflake; + /** * Class Socket * @package Annotation @@ -28,4 +33,20 @@ namespace Annotation; { } + + /** + * @param Closure|array $closure + * @return mixed + * @throws ComponentException + */ + public function setHandler(Closure|array $closure): mixed + { + $router = Snowflake::app()->getRouter(); + // TODO: Implement setHandler() method. + + $method = $this->event . '::' . ($this->uri ?? 'event'); + + return $router->addRoute($method, $closure, 'sw::socket'); + } + }