This commit is contained in:
2020-12-16 15:37:23 +08:00
parent f12994dd55
commit 18743e0003
7 changed files with 23 additions and 36 deletions
+13 -1
View File
@@ -18,6 +18,18 @@ use Snowflake\Snowflake;
* Interceptor constructor. * Interceptor constructor.
* @param \HttpServer\IInterface\After|\HttpServer\IInterface\After[] $after * @param \HttpServer\IInterface\After|\HttpServer\IInterface\After[] $after
* @throws * @throws
* if ($object instanceof Interceptor) {
$classes[$key] = [$object, 'Interceptor'];
}
if ($object instanceof Limits) {
$classes[$key] = [$object, 'next'];
}
if ($object instanceof After) {
$classes[$key] = [$object, 'onHandler'];
}
if ($object instanceof Middleware) {
$classes[$key] = [$object, 'onHandler'];
}
*/ */
public function __construct(public string|array $after) public function __construct(public string|array $after)
{ {
@@ -25,7 +37,7 @@ use Snowflake\Snowflake;
$this->after = [$this->after]; $this->after = [$this->after];
} }
foreach ($this->after as $key => $item) { foreach ($this->after as $key => $item) {
$this->after[$key] = Snowflake::createObject($item); $this->after[$key] = [Snowflake::createObject($item), 'onHandler'];
} }
} }
+1 -1
View File
@@ -25,7 +25,7 @@ use Snowflake\Snowflake;
$this->interceptor = [$this->interceptor]; $this->interceptor = [$this->interceptor];
} }
foreach ($this->interceptor as $key => $item) { foreach ($this->interceptor as $key => $item) {
$this->interceptor[$key] = Snowflake::createObject($item); $this->interceptor[$key] = [Snowflake::createObject($item), 'Interceptor'];
} }
} }
+1 -1
View File
@@ -25,7 +25,7 @@ use Snowflake\Snowflake;
$this->limits = [$this->limits]; $this->limits = [$this->limits];
} }
foreach ($this->limits as $key => $item) { foreach ($this->limits as $key => $item) {
$this->limits[$key] = Snowflake::createObject($item); $this->limits[$key] = [Snowflake::createObject($item), 'next'];
} }
} }
+1 -1
View File
@@ -25,7 +25,7 @@ use Snowflake\Snowflake;
$this->middleware = [$this->middleware]; $this->middleware = [$this->middleware];
} }
foreach ($this->middleware as $key => $item) { foreach ($this->middleware as $key => $item) {
$this->middleware[$key] = Snowflake::createObject($item); $this->middleware[$key] = [Snowflake::createObject($item), 'onHandler'];
} }
} }
+2 -14
View File
@@ -15,24 +15,14 @@ use Annotation\IAnnotation;
#[\Attribute(\Attribute::TARGET_METHOD)] class Route implements IAnnotation #[\Attribute(\Attribute::TARGET_METHOD)] class Route implements IAnnotation
{ {
use \Annotation\Route\Node;
/** /**
* Route constructor. * Route constructor.
* @param string $uri * @param string $uri
* @param string $method * @param string $method
* @param array|null $middleware
* @param array|null $interceptor
* @param array|null $limits
* @param array|null $after
*/ */
public function __construct( public function __construct(
public string $uri, public string $uri,
public string $method, public string $method
public ?array $middleware = null,
public ?array $interceptor = null,
public ?array $limits = null,
public ?array $after = null
) )
{ {
} }
@@ -50,9 +40,7 @@ use Annotation\IAnnotation;
$router = Snowflake::app()->getRouter(); $router = Snowflake::app()->getRouter();
// TODO: Implement setHandler() method. // TODO: Implement setHandler() method.
$node = $router->addRoute($this->uri, $handler, $this->method); return $router->addRoute($this->uri, $handler, $this->method);
return $this->add($node);
} }
+2 -15
View File
@@ -25,25 +25,14 @@ use Snowflake\Snowflake;
const MESSAGE = 'MESSAGE'; const MESSAGE = 'MESSAGE';
const HANDSHAKE = 'HANDSHAKE'; const HANDSHAKE = 'HANDSHAKE';
use \Annotation\Route\Node;
/** /**
* Socket constructor. * Socket constructor.
* @param string $event * @param string $event
* @param string|null $uri * @param string|null $uri
* @param array|null $middleware
* @param array|null $interceptor
* @param array|null $limits
* @param array|null $after
*/ */
public function __construct( public function __construct(
public string $event, public string $event,
public ?string $uri = null, public ?string $uri = null
public ?array $middleware = null,
public ?array $interceptor = null,
public ?array $limits = null,
public ?array $after = null
) )
{ {
} }
@@ -63,9 +52,7 @@ use Snowflake\Snowflake;
$method = $this->event . '::' . (is_null($this->uri) ? 'event' : $this->uri); $method = $this->event . '::' . (is_null($this->uri) ? 'event' : $this->uri);
$node = $router->addRoute($method, $handler, 'sw::socket'); return $router->addRoute($method, $handler, 'sw::socket');
return $this->add($node);
} }
} }
+3 -3
View File
@@ -56,9 +56,9 @@ class Middleware
public function getGenerate(Node $node): mixed public function getGenerate(Node $node): mixed
{ {
try { try {
// if (is_array($node->handler) && is_object($node->handler[0])) { if (is_array($node->handler) && is_object($node->handler[0])) {
// $this->set_attributes($node); $this->set_attributes($node);
// } }
return $node->callback = Reduce::reduce(function () use ($node) { return $node->callback = Reduce::reduce(function () use ($node) {
return Dispatch::create($node->handler, func_get_args())->dispatch(); return Dispatch::create($node->handler, func_get_args())->dispatch();
}, $this->annotation($node)); }, $this->annotation($node));