This commit is contained in:
2021-09-10 10:45:24 +08:00
parent dca5d3e6ec
commit f217a14f23
29 changed files with 148 additions and 1544 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
namespace Server\Constrict;
use Server\ResponseInterface;
use Server\Constrict\ResponseInterface;
interface Emitter
{
-2
View File
@@ -12,8 +12,6 @@ use Psr\Http\Message\StreamInterface;
use Psr\Http\Message\UploadedFileInterface;
use Psr\Http\Message\UriInterface;
use Server\Message\Response;
use Server\RequestInterface;
use Server\ResponseInterface;
class Request implements RequestInterface
+155
View File
@@ -0,0 +1,155 @@
<?php
namespace Server\Constrict;
use Http\IInterface\AuthIdentity;
use JetBrains\PhpStorm\Pure;
use Protocol\Message\ServerRequest;
use Psr\Http\Message\UploadedFileInterface;
/**
*
* @mixin ServerRequest
*/
interface RequestInterface extends \Psr\Http\Message\RequestInterface
{
/**
* @param string $method
* @return bool
*/
public function isMethod(string $method): bool;
/**
* @param string $name
* @return UploadedFileInterface|null
*/
public function file(string $name): ?UploadedFileInterface;
/**
* @return array
*/
public function all(): array;
/**
* @param string $name
* @param int|string|bool|null $default
* @return mixed
*/
public function query(string $name, int|string|bool|null $default = null): mixed;
/**
* @param string $name
* @param int|string|bool|array|null $default
* @return mixed
*/
public function post(string $name, int|string|bool|null|array $default = null): mixed;
/**
* @param string $name
* @param bool $required
* @return int|null
*/
public function int(string $name, bool $required = false): ?int;
/**
* @param string $name
* @param bool $required
* @return float|null
*/
public function float(string $name, bool $required = false): ?float;
/**
* @param string $name
* @param bool $required
* @return string|null
*/
public function date(string $name, bool $required = false): ?string;
/**
* @param string $name
* @param bool $required
* @return int|null
*/
public function timestamp(string $name, bool $required = false): ?int;
/**
* @param string $name
* @param bool $required
* @return string|null
*/
public function string(string $name, bool $required = false): ?string;
/**
* @param string $name
* @param array $default
* @return array|null
*/
public function array(string $name, array $default = []): ?array;
/**
* @return array|null
*/
public function gets(): ?array;
/**
* @param string $field
* @param string $sizeField
* @param int $max
* @return float|int
*/
public function offset(string $field = 'page', string $sizeField = 'size', int $max = 100): float|int;
/**
* @param string $field
* @param int $max
* @return int
*/
public function size(string $field = 'size', int $max = 100): int;
/**
* @param $name
* @param null $default
* @return mixed
*/
public function input($name, $default = null): mixed;
/**
* @return float
*/
#[Pure] public function getStartTime(): float;
/**
* @param AuthIdentity $authority
*/
public function setAuthority(AuthIdentity $authority): void;
/**
* @return int
*/
public function getClientId(): int;
/**
* @return string|null
*/
#[Pure] public function getAccessControlAllowOrigin(): ?string;
/**
* @return string|null
*/
#[Pure] public function getAccessControlAllowHeaders(): ?string;
/**
* @return string|null
*/
#[Pure] public function getAccessControlRequestMethod(): ?string;
}
-2
View File
@@ -10,8 +10,6 @@ use Kiri\Kiri;
use Psr\Http\Message\StreamInterface;
use Server\Message\Request as RequestMessage;
use Server\Message\Response as Psr7Response;
use Server\RequestInterface;
use Server\ResponseInterface;
use Server\ServerManager;
use Server\SInterface\DownloadInterface;
@@ -3,8 +3,6 @@
namespace Server\Constrict;
use Annotation\Inject;
use Server\ResponseInterface;
use Server\RequestInterface;
use Server\SInterface\DownloadInterface;
use Swoole\Server;
+112
View File
@@ -0,0 +1,112 @@
<?php
namespace Server\Constrict;
use JetBrains\PhpStorm\Pure;
use Server\Message\Response;
use Server\SInterface\DownloadInterface;
/**
* @mixin Response
*/
interface ResponseInterface extends \Psr\Http\Message\ResponseInterface
{
/**
* @param string $path
* @return DownloadInterface
*/
public function file(string $path): DownloadInterface;
/**
* @param $responseData
* @return string|array|bool|int|null
*/
public function _toArray($responseData): string|array|null|bool|int;
/**
* @param $data
* @return ResponseInterface
*/
public function xml($data): ResponseInterface;
/**
* @param $data
* @return ResponseInterface
*/
public function html($data): ResponseInterface;
/**
* @param $data
* @return ResponseInterface
*/
public function json($data): ResponseInterface;
/**
* @return string
*/
public function getContentType(): string;
/**
* @return bool
*/
public function hasContentType(): bool;
/**
* @param string $type
* @return ResponseInterface
*/
public function withContentType(string $type): ResponseInterface;
/**
* @param ?string $value
* @return ResponseInterface
*/
public function withAccessControlAllowOrigin(?string $value): ResponseInterface;
/**
* @param ?string $value
* @return ResponseInterface
*/
public function withAccessControlRequestMethod(?string $value): ResponseInterface;
/**
* @param ?string $value
* @return ResponseInterface
*/
public function withAccessControlAllowHeaders(?string $value): ResponseInterface;
/**
* @return string|null
*/
#[Pure] public function getAccessControlAllowOrigin(): ?string;
/**
* @return string|null
*/
#[Pure] public function getAccessControlAllowHeaders(): ?string;
/**
* @return string|null
*/
#[Pure] public function getAccessControlRequestMethod(): ?string;
}
+1 -1
View File
@@ -4,7 +4,7 @@ namespace Server\Constrict;
use Exception;
use Http\Context\Formatter\FileFormatter;
use Server\ResponseInterface;
use Server\Constrict\ResponseInterface;
use Swoole\Server;
+1 -1
View File
@@ -3,7 +3,7 @@
namespace Server\Constrict;
use Kiri\Exception\NotFindClassException;
use Server\ResponseInterface;
use Server\Constrict\ResponseInterface;
use Swoole\Server;
+1 -1
View File
@@ -6,7 +6,7 @@ namespace Server\Constrict;
use Exception;
use Kiri\Kiri;
use Server\ServerManager;
use Server\ResponseInterface;
use Server\Constrict\ResponseInterface;
/**
*