This commit is contained in:
2020-08-31 12:38:32 +08:00
parent 683a39dded
commit 65c443ec87
126 changed files with 7369 additions and 228 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ use HttpServer\IInterface\IMiddleware;
/**
* Class MiddlewareHandler
* @package BeReborn\Route
* @package Snowflake\Snowflake\Route
*/
abstract class MiddlewareHandler implements IMiddleware
{
+1 -1
View File
@@ -14,7 +14,7 @@ use Swoole\WebSocket\Server;
/**
* Class ServerBase
* @package BeReborn\Server
* @package Snowflake\Snowflake\Server
*/
abstract class ServerBase extends Application
{
+1 -1
View File
@@ -17,7 +17,7 @@ use Swoole\Coroutine\System;
/**
* Class Client
* @package BeReborn\Http
* @package Snowflake\Snowflake\Http
*/
class Client
{
+1 -1
View File
@@ -12,7 +12,7 @@ use Snowflake\Snowflake;
/**
* Class WebController
* @package BeReborn\Web
* @package Snowflake\Snowflake\Web
*/
class Controller extends Application
{
+1 -2
View File
@@ -8,7 +8,6 @@
namespace HttpServer\Events;
use BeReborn;
use Exception;
use HttpServer\ServerManager;
use Snowflake\Error\Logger;
@@ -22,7 +21,7 @@ use Swoole\WebSocket\Server;
/**
* Class ServerWebSocket
* @package BeReborn\Server
* @package Snowflake\Snowflake\Server
*/
class WebSocket extends Server
{
+1 -1
View File
@@ -13,7 +13,7 @@ use Throwable;
/**
* Class AuthException
* @package BeReborn\Exception
* @package Snowflake\Snowflake\Exception
*/
class AuthException extends \Exception
{
+2 -2
View File
@@ -4,10 +4,10 @@
namespace HttpServer\Http;
use Exception;
use Snowflake\Snowflake;
/**
* Class File
* @package BeReborn\Http
*/
class File
{
@@ -57,7 +57,7 @@ class File
return $this->newName;
}
$param = ['tmp_name' => $this->getTmpPath()];
$this->newName = \BeReborn::rename($param);
$this->newName = Snowflake::rename($param);
return $this->newName;
}
+2 -2
View File
@@ -9,14 +9,14 @@
namespace HttpServer\Http\Formatter;
use BeReborn\Core\JSON;
use Snowflake\Core\JSON;
use HttpServer\Application;
use Swoole\Http\Response;
use HttpServer\IInterface\IFormatter;
/**
* Class HtmlFormatter
* @package BeReborn\Http\Formatter
* @package Snowflake\Snowflake\Http\Formatter
*/
class HtmlFormatter extends Application implements IFormatter
{
+1 -1
View File
@@ -14,7 +14,7 @@ use HttpServer\IInterface\IFormatter;
/**
* Class JsonFormatter
* @package BeReborn\Http\Formatter
* @package Snowflake\Snowflake\Http\Formatter
*/
class JsonFormatter extends Application implements IFormatter
{
+1 -1
View File
@@ -17,7 +17,7 @@ use HttpServer\IInterface\IFormatter;
/**
* Class XmlFormatter
* @package BeReborn\Http\Formatter
* @package Snowflake\Snowflake\Http\Formatter
*/
class XmlFormatter extends Application implements IFormatter
{
+1 -1
View File
@@ -10,7 +10,7 @@ namespace HttpServer\Http;
/**
* Class HttpHeaders
* @package BeReborn\Http
* @package Snowflake\Snowflake\Http
*/
class HttpHeaders
{
+3 -3
View File
@@ -8,13 +8,13 @@
namespace HttpServer\Http;
use BeReborn\Core\JSON;
use Exception;
use HttpServer\Exception\RequestException;
use Snowflake\Snowflake;
/**
* Class HttpParams
* @package BeReborn\Http
* @package Snowflake\Snowflake\Http
*/
class HttpParams
{
@@ -177,7 +177,7 @@ class HttpParams
}
$param = $this->files[$name];
$param['class'] = File::class;
return \BeReborn::createObject($param);
return Snowflake::createObject($param);
}
/**
+3 -9
View File
@@ -6,6 +6,7 @@ use Snowflake\Core\Help;
use Exception;
use HttpServer\Application;
use HttpServer\IInterface\AuthIdentity;
use Snowflake\Snowflake;
defined('REQUEST_OK') or define('REQUEST_OK', 0);
defined('REQUEST_FAIL') or define('REQUEST_FAIL', 500);
@@ -13,7 +14,7 @@ defined('REQUEST_FAIL') or define('REQUEST_FAIL', 500);
/**
* Class HttpRequest
*
* @package BeReborn\HttpRequest
* @package Snowflake\Snowflake\HttpRequest
*
* @property-read $isPost
* @property-read $isGet
@@ -284,14 +285,7 @@ class Request extends Application
*/
public function getIsHttp()
{
if (!app()->has('socket')) {
return false;
}
$socket = \BeReborn::$app->getSocket()->getServer();
if (empty($this->fd)) {
return false;
}
return $socket->exist($this->fd) && !$socket->isEstablished($this->fd);
return true;
}
/**
+1 -1
View File
@@ -20,7 +20,7 @@ use Swoole\Http\Response as SResponse;
/**
* Class Response
* @package BeReborn\Http
* @package Snowflake\Snowflake\Http
*/
class Response extends Application
{
+1 -1
View File
@@ -6,7 +6,7 @@ namespace HttpServer\IInterface;
/**
* Interface AuthIdentity
* @package BeReborn\Http
* @package Snowflake\Snowflake\Http
*/
interface AuthIdentity
{
+1 -1
View File
@@ -11,7 +11,7 @@ namespace HttpServer\IInterface;
/**
* Interface IFormatter
* @package BeReborn\Http\Formatter
* @package Snowflake\Snowflake\Http\Formatter
*/
interface IFormatter
{
+1 -1
View File
@@ -8,7 +8,7 @@ use HttpServer\Http\Request;
/**
* Interface IMiddleware
* @package BeReborn\Route
* @package Snowflake\Snowflake\Route
*/
interface IMiddleware
{
+1 -1
View File
@@ -6,7 +6,7 @@ namespace HttpServer\Route;
/**
* Class Any
* @package BeReborn\Route
* @package Snowflake\Snowflake\Route
*/
class Any
{
+4 -2
View File
@@ -4,13 +4,15 @@
namespace HttpServer\Route;
use HttpServer\Http\Context;
use HttpServer\Http\Request;
use HttpServer\Http\Response;
use HttpServer\Abstracts\MiddlewareHandler;
use Snowflake\Snowflake;
/**
* Class CoreMiddleware
* @package BeReborn\Route
* @package Snowflake\Snowflake\Route
* 跨域中间件
*/
class CoreMiddleware extends MiddlewareHandler
@@ -27,7 +29,7 @@ class CoreMiddleware extends MiddlewareHandler
$header = $request->headers;
/** @var Response $response */
$response = \BeReborn::getApp('response');
$response = Context::getContext('response');
$request_method = $header->getHeader('access-control-request-method');
$request_headers = $header->getHeader('access-control-request-headers');
$response->addHeader('Access-Control-Allow-Headers', $request_headers);
+5 -4
View File
@@ -11,10 +11,11 @@ use HttpServer\Route\Filter\HeaderFilter;
use HttpServer\Route\Filter\QueryFilter;
use Exception;
use HttpServer\Application;
use Snowflake\Snowflake;
/**
* Class Filter
* @package BeReborn\Route
* @package Snowflake\Snowflake\Route
*/
class Filter extends Application
{
@@ -37,7 +38,7 @@ class Filter extends Application
}
/** @var BodyFilter $class */
$class = \BeReborn::createObject(BodyFilter::class);
$class = Snowflake::createObject(BodyFilter::class);
$class->rules = [];
$class->params = Input()->params();
@@ -57,7 +58,7 @@ class Filter extends Application
}
/** @var HeaderFilter $class */
$class = \BeReborn::createObject(HeaderFilter::class);
$class = Snowflake::createObject(HeaderFilter::class);
$class->rules = [];
$class->params = request()->headers->getHeaders();
@@ -77,7 +78,7 @@ class Filter extends Application
}
/** @var QueryFilter $class */
$class = \BeReborn::createObject(QueryFilter::class);
$class = Snowflake::createObject(QueryFilter::class);
$class->rules = [];
$class->params = request()->headers->getHeaders();
+1 -1
View File
@@ -8,7 +8,7 @@ use Exception;
/**
* Class BodyFilter
* @package BeReborn\Route\Filter
* @package Snowflake\Snowflake\Route\Filter
*/
class BodyFilter extends Filter
{
+1 -1
View File
@@ -10,7 +10,7 @@ use validator\Validator;
/**
* Class Filter
* @package BeReborn\Route\Filter
* @package Snowflake\Snowflake\Route\Filter
*/
abstract class Filter extends Application
{
+1 -1
View File
@@ -7,7 +7,7 @@ use Exception;
/**
* Class HeaderFilter
* @package BeReborn\Route\Filter
* @package Snowflake\Snowflake\Route\Filter
*/
class HeaderFilter extends Filter
{
+1 -1
View File
@@ -8,7 +8,7 @@ use Exception;
/**
* Class QueryFilter
* @package BeReborn\Route\Filter
* @package Snowflake\Snowflake\Route\Filter
*/
class QueryFilter extends Filter
{
+3 -2
View File
@@ -6,10 +6,11 @@ namespace HttpServer\Route;
use Exception;
use HttpServer\Application;
use Snowflake\Snowflake;
/**
* Class TcpListen
* @package BeReborn\Route
* @package Snowflake\Snowflake\Route
*/
class Handler extends Application
{
@@ -23,7 +24,7 @@ class Handler extends Application
*/
public function __construct()
{
$this->router = \BeReborn::$app->getRouter();
$this->router = Snowflake::get()->router;
parent::__construct([]);
}
-69
View File
@@ -1,69 +0,0 @@
<?php
namespace HttpServer\Route;
use Exception;
use HttpServer\Application;
/**
* Class Limits
* @package BeReborn\Route
*/
class Limits extends Application
{
public $route = [];
/**
* @param string $path
* @param int $limit
* @param int $duration
* @param bool $isBindConsumer
* @return $this
* 设置限流
*/
public function addLimits(string $path, int $limit, int $duration = 60, bool $isBindConsumer = false)
{
if ($limit < 0) {
$limit = 0;
}
$this->route[$path] = [$limit, $duration, $isBindConsumer];
return $this;
}
/**
* @param int $userId
* @return bool
* @throws Exception
*
* 判断有没有被限流
*/
public function isRestrictedCurrent(int $userId = 0)
{
$path = \request()->getUri();
if (!isset($this->route[$path])) {
return false;
}
$redis = \BeReborn::getRedis();
[$limit, $duration, $isBindConsumer] = $this->route[$path];
if ($limit < 1) {
return false;
}
if ($isBindConsumer && $userId < 1) {
return true;
}
$uri = md5($path) . '_' . $userId;
if ($redis->incr($uri) > $limit) {
return true;
}
if ($redis->ttl($uri) == -1) {
$redis->expire($uri, $duration);
}
return false;
}
}
+1 -1
View File
@@ -15,7 +15,7 @@ use HttpServer\Route\Dispatch\Dispatch;
/**
* Class Middleware
* @package BeReborn\Route
* @package Snowflake\Snowflake\Route
*/
class Middleware
{
+6 -5
View File
@@ -7,10 +7,11 @@ namespace HttpServer\Route;
use HttpServer\Http\Request;
use Exception;
use HttpServer\Application;
use Snowflake\Snowflake;
/**
* Class Node
* @package BeReborn\Route
* @package Snowflake\Snowflake\Route
*/
class Node extends Application
{
@@ -100,7 +101,7 @@ class Node extends Application
$rule['class'] = Filter::class;
}
/** @var Filter $object */
$object = \BeReborn::createObject($rule);
$object = Snowflake::createObject($rule);
if (!$object->handler()) {
return false;
};
@@ -243,7 +244,7 @@ class Node extends Application
*/
public function limits(int $limit, int $duration = 60, bool $isBindConsumer = false)
{
$limits = \BeReborn::$app->getLimits();
$limits = Snowflake::get()->getLimits();
$limits->addLimits($this->path, $limit, $duration, $isBindConsumer);
return $this;
}
@@ -266,7 +267,7 @@ class Node extends Application
if (is_array($middle)) {
$_tmp = $this->each($middle, $_tmp);
} else {
$_tmp[] = \BeReborn::createObject($middle);
$_tmp[] = Snowflake::createObject($middle);
}
} catch (Exception $exception) {
}
@@ -305,7 +306,7 @@ class Node extends Application
if (is_array($class)) {
$_temp = $this->each($class, $_temp);
} else {
$_temp[] = \BeReborn::createObject($class);
$_temp[] = Snowflake::createObject($class);
}
}
return $_temp;
+3 -2
View File
@@ -12,10 +12,11 @@ use HttpServer\Application;
use Snowflake\Config;
use Snowflake\Core\JSON;
use Snowflake\Exception\ConfigException;
use Snowflake\Snowflake;
/**
* Class Router
* @package BeReborn\Route
* @package Snowflake\Snowflake\Route
*/
class Router extends Application implements RouterInterface
{
@@ -173,7 +174,7 @@ class Router extends Application implements RouterInterface
*/
public function listen(int $port, Closure $closure)
{
$stdClass = \BeReborn::createObject(Handler::class);
$stdClass = Snowflake::createObject(Handler::class);
$this->group(['prefix' => $port], $closure, $stdClass);
}
-2
View File
@@ -5,10 +5,8 @@ namespace HttpServer;
use Exception;
use ReflectionException;
use Snowflake\Exception\ComponentException;
use Snowflake\Exception\NotFindClassException;
use Snowflake\Snowflake;
use Swoole\Process\Pool;
class ServerManager
{