改名
This commit is contained in:
@@ -4,9 +4,17 @@
|
|||||||
namespace HttpServer\IInterface;
|
namespace HttpServer\IInterface;
|
||||||
|
|
||||||
|
|
||||||
|
use Closure;
|
||||||
|
|
||||||
interface After
|
interface After
|
||||||
{
|
{
|
||||||
|
|
||||||
public function onHandler($params);
|
|
||||||
|
/**
|
||||||
|
* @param $params
|
||||||
|
* @param Closure|null $next
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function onHandler($params, $next);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ namespace HttpServer\Route;
|
|||||||
use Closure;
|
use Closure;
|
||||||
use Exception;
|
use Exception;
|
||||||
use HttpServer\Route\Dispatch\Dispatch;
|
use HttpServer\Route\Dispatch\Dispatch;
|
||||||
|
use Snowflake\Snowflake;
|
||||||
use Swoole\Coroutine;
|
use Swoole\Coroutine;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -53,12 +54,11 @@ class Middleware
|
|||||||
$last = function ($passable) use ($node) {
|
$last = function ($passable) use ($node) {
|
||||||
$responseData = Dispatch::create($node->handler, $passable)->dispatch();
|
$responseData = Dispatch::create($node->handler, $passable)->dispatch();
|
||||||
response()->send($responseData, 200);
|
response()->send($responseData, 200);
|
||||||
Coroutine::create(function () use ($responseData, $node) {
|
if ($node->hasAfter()) {
|
||||||
$node->afterDispatch($responseData);
|
$node->afterDispatch($responseData);
|
||||||
});
|
}
|
||||||
};
|
};
|
||||||
$data = Reduce::reduce($last, $this->annotation($node));
|
return $node->callback = Reduce::reduce($last, $this->annotation($node));
|
||||||
return $node->callback = $data;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -100,7 +100,8 @@ class Node extends Application
|
|||||||
*/
|
*/
|
||||||
public function afterDispatch($response)
|
public function afterDispatch($response)
|
||||||
{
|
{
|
||||||
return call_user_func($this->_after, $response);
|
$callback = Reduce::after($this->_after);
|
||||||
|
return $callback($response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ namespace HttpServer\Route;
|
|||||||
|
|
||||||
|
|
||||||
use Closure;
|
use Closure;
|
||||||
|
use HttpServer\IInterface\After;
|
||||||
|
|
||||||
class Reduce
|
class Reduce
|
||||||
{
|
{
|
||||||
@@ -21,6 +22,24 @@ class Reduce
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $middleWares
|
||||||
|
* @return mixed|null
|
||||||
|
*/
|
||||||
|
public static function after($middleWares)
|
||||||
|
{
|
||||||
|
return array_reduce(array_reverse($middleWares), function ($stack, $pipe) {
|
||||||
|
return function ($passable) use ($stack, $pipe) {
|
||||||
|
if ($pipe instanceof After) {
|
||||||
|
return $pipe->onHandler($passable, $stack);
|
||||||
|
} else {
|
||||||
|
return $pipe($passable, $stack);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Closure
|
* @return Closure
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user