first commit
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace Kiri\Router\Base;
|
||||
|
||||
class AbstractHandler
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
|
||||
namespace Kiri\Message\Handler;
|
||||
|
||||
|
||||
/**
|
||||
* Interface AuthorizationInterface
|
||||
* @package Kiri\Http
|
||||
*/
|
||||
interface AuthorizationInterface
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @return string|int
|
||||
* 获取唯一识别码
|
||||
*/
|
||||
public function getUniqueId(): string|int;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @param string $key
|
||||
* @param int $timeout
|
||||
* @return bool
|
||||
*/
|
||||
public function lock(string $key, int $timeout): bool;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @param string $key
|
||||
* @return bool
|
||||
*/
|
||||
public function unlock(string $key): bool;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace Kiri\Message\Handler;
|
||||
|
||||
class ClosureController extends Controller
|
||||
{
|
||||
|
||||
|
||||
private \Closure $handler;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Kiri\Message\Handler;
|
||||
|
||||
|
||||
use Kiri;
|
||||
use Kiri\Message\Constrict\RequestInterface;
|
||||
use Kiri\Message\Constrict\ResponseInterface;
|
||||
use Kiri\Di\ContainerInterface;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
/**
|
||||
* Class WebController
|
||||
* @package Kiri\Web
|
||||
*/
|
||||
abstract class Controller
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @param RequestInterface $request
|
||||
* @param ResponseInterface $response
|
||||
* @param LoggerInterface $logger
|
||||
* @param ContainerInterface $container
|
||||
*/
|
||||
public function __construct(
|
||||
public RequestInterface $request,
|
||||
public ResponseInterface $response,
|
||||
public LoggerInterface $logger,
|
||||
public ContainerInterface $container)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace Kiri\Message\Handler;
|
||||
|
||||
use Exception;
|
||||
use Kiri\Message\Handler\Abstracts\Middleware;
|
||||
use Kiri\Message\ServerRequest;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
use Psr\Http\Server\RequestHandlerInterface;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class CoreMiddleware extends Middleware
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @param ServerRequest $request
|
||||
* @param RequestHandlerInterface $handler
|
||||
* @return ResponseInterface
|
||||
* @throws Exception
|
||||
*/
|
||||
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
||||
{
|
||||
$requestMethod = $request->getAccessControlRequestMethod();
|
||||
$allowHeaders = $request->getAccessControlAllowHeaders();
|
||||
|
||||
$this->response->withAccessControlAllowOrigin('*')->withAccessControlRequestMethod($requestMethod)
|
||||
->withAccessControlAllowHeaders($allowHeaders);
|
||||
|
||||
return $handler->handle($request);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace Kiri\Message\Abstracts;
|
||||
|
||||
use Kiri\Annotation\Inject;
|
||||
use Kiri\Events\EventDispatch;
|
||||
|
||||
trait EventDispatchHelper
|
||||
{
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace Kiri\Message;
|
||||
|
||||
|
||||
use Kiri\Message\Constrict\Response;
|
||||
use Kiri\Message\Constrict\ResponseInterface;
|
||||
use Kiri\Message\Abstracts\ExceptionHandlerInterface;
|
||||
use Throwable;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class ExceptionHandlerDispatcher implements ExceptionHandlerInterface
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @param Throwable $exception
|
||||
* @param Response $response
|
||||
* @return ResponseInterface
|
||||
*/
|
||||
public function emit(Throwable $exception, Response $response): ResponseInterface
|
||||
{
|
||||
$response->withContentType(ContentType::HTML);
|
||||
if ($exception->getCode() == 404) {
|
||||
return $response->withBody(new Stream($exception->getMessage()))->withStatus(404);
|
||||
}
|
||||
return $response->withBody(new Stream(jTraceEx($exception, null, true)))
|
||||
->withStatus($exception->getCode() == 0 ? 500 : $exception->getCode());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace Kiri\Message\Handler;
|
||||
|
||||
use Kiri\Message\Constrict\ResponseInterface;
|
||||
|
||||
class MethodErrorController extends Controller
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @return ResponseInterface
|
||||
*/
|
||||
public function fail(): ResponseInterface
|
||||
{
|
||||
return $this->response->failure(405, "method allow.");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace Kiri\Router\Base;
|
||||
|
||||
class Middleware
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace Kiri\Message\Handler;
|
||||
|
||||
use Kiri\Message\Constrict\ResponseInterface;
|
||||
|
||||
class NotFoundController extends Controller
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @return ResponseInterface
|
||||
*/
|
||||
public function fail(): ResponseInterface
|
||||
{
|
||||
return $this->response->failure(404, "not found page.");
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user