改名
This commit is contained in:
@@ -4,15 +4,12 @@ declare(strict_types=1);
|
||||
namespace HttpServer;
|
||||
|
||||
|
||||
use Exception;
|
||||
use HttpServer\Abstracts\HttpService;
|
||||
use HttpServer\Http\HttpHeaders;
|
||||
use HttpServer\Http\HttpParams;
|
||||
use HttpServer\Http\Request;
|
||||
use Exception;
|
||||
use ReflectionException;
|
||||
use Snowflake\Abstracts\TraitApplication;
|
||||
use Snowflake\Exception\ComponentException;
|
||||
use Snowflake\Exception\NotFindClassException;
|
||||
use Snowflake\Snowflake;
|
||||
|
||||
/**
|
||||
@@ -69,6 +66,7 @@ class Controller extends HttpService
|
||||
|
||||
/**
|
||||
* @return Request|null
|
||||
* @throws Exception
|
||||
*/
|
||||
public function getRequest(): ?Request
|
||||
{
|
||||
@@ -76,6 +74,16 @@ class Controller extends HttpService
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @return bool
|
||||
*/
|
||||
public function beforeAction(Request $request): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @return mixed
|
||||
|
||||
@@ -21,7 +21,6 @@ use JetBrains\PhpStorm\Pure;
|
||||
use Snowflake\Core\Json;
|
||||
use Snowflake\Snowflake;
|
||||
use Throwable;
|
||||
use validator\Validator;
|
||||
use function Input;
|
||||
|
||||
/**
|
||||
@@ -130,13 +129,32 @@ class Node extends HttpService
|
||||
if (empty($dispatchParam)) {
|
||||
$dispatchParam = [\request()];
|
||||
}
|
||||
// return call_user_func($this->handler, ...$dispatchParam);
|
||||
|
||||
return \aop($this->handler, $dispatchParam);
|
||||
if ($this->beforeAction()) {
|
||||
return \aop($this->handler, $dispatchParam);
|
||||
}
|
||||
return response()->close(400);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
private bool $_hasBeforeAction = false;
|
||||
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
* @throws Exception
|
||||
*/
|
||||
public function beforeAction(): bool
|
||||
{
|
||||
if (!$this->_hasBeforeAction) return true;
|
||||
[$controller, $action] = $this->handler;
|
||||
if (!$controller->beforeAction(\request())) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
@@ -299,6 +317,8 @@ class Node extends HttpService
|
||||
throw new Exception('method ' . $action . ' not exists at ' . $controller . '.');
|
||||
}
|
||||
|
||||
$this->_hasBeforeAction = $reflect->hasMethod('beforeAction');
|
||||
|
||||
$this->annotationInject($reflect->getName(), $action);
|
||||
|
||||
return [$reflect->newInstance(), $action];
|
||||
|
||||
Reference in New Issue
Block a user