first commit

This commit is contained in:
2023-04-15 23:29:27 +08:00
commit 2d9ac93a7a
71 changed files with 4592 additions and 0 deletions
+8
View File
@@ -0,0 +1,8 @@
<?php
namespace Kiri\Router\Base;
class AbstractHandler
{
}
+40
View File
@@ -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;
}
+11
View File
@@ -0,0 +1,11 @@
<?php
namespace Kiri\Message\Handler;
class ClosureController extends Controller
{
private \Closure $handler;
}
+36
View File
@@ -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)
{
}
}
+37
View File
@@ -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);
}
}
+13
View File
@@ -0,0 +1,13 @@
<?php
namespace Kiri\Message\Abstracts;
use Kiri\Annotation\Inject;
use Kiri\Events\EventDispatch;
trait EventDispatchHelper
{
}
+34
View File
@@ -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());
}
}
+18
View File
@@ -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.");
}
}
+8
View File
@@ -0,0 +1,8 @@
<?php
namespace Kiri\Router\Base;
class Middleware
{
}
+19
View File
@@ -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.");
}
}