This commit is contained in:
2021-09-16 14:53:36 +08:00
parent 8c5b6f674c
commit 41a6158fd0
20 changed files with 48 additions and 32 deletions
+1 -1
View File
@@ -40,7 +40,7 @@
"psr-4": {
"Kiri\\": "core/",
"Http\\": "http-helper/",
"Protocol\\Message\\": "http-message/",
"Http\\Message\\": "http-message/",
"Server\\": "http-server/",
"Console\\": "kiri-console/",
"Gii\\": "kiri-gii/",
+1 -1
View File
@@ -24,7 +24,7 @@ use Server\Constrict\Response;
use Server\Constrict\ResponseInterface;
use Server\ServerManager;
use Swoole\WebSocket\Server;
use Protocol\Message\Response as Par7Response;
use Http\Message\Response as Par7Response;
if (!function_exists('make')) {
+1 -1
View File
@@ -1,6 +1,6 @@
<?php
namespace Protocol\Message;
namespace Http\Message;
use Server\SInterface\DownloadInterface;
+1 -1
View File
@@ -1,6 +1,6 @@
<?php
namespace Protocol\Message;
namespace Http\Message;
use JetBrains\PhpStorm\Pure;
use Psr\Http\Message\ResponseInterface;
+1 -1
View File
@@ -1,6 +1,6 @@
<?php
namespace Protocol\Message;
namespace Http\Message;
use Kiri\Core\Xml;
+1 -1
View File
@@ -1,6 +1,6 @@
<?php
namespace Protocol\Message;
namespace Http\Message;
use BadMethodCallException;
use Http\IInterface\AuthIdentity;
+1 -1
View File
@@ -1,6 +1,6 @@
<?php
namespace Protocol\Message;
namespace Http\Message;
use Exception;
use JetBrains\PhpStorm\Pure;
+1 -1
View File
@@ -1,6 +1,6 @@
<?php
namespace Protocol\Message;
namespace Http\Message;
use Http\Context\Context;
use Psr\Http\Message\ServerRequestInterface;
+1 -1
View File
@@ -1,6 +1,6 @@
<?php
namespace Protocol\Message;
namespace Http\Message;
class StatusCode
{
+1 -1
View File
@@ -1,6 +1,6 @@
<?php
namespace Protocol\Message;
namespace Http\Message;
use JetBrains\PhpStorm\ArrayShape;
use Psr\Http\Message\StreamInterface;
+24 -8
View File
@@ -1,7 +1,8 @@
<?php
namespace Protocol\Message;
namespace Http\Message;
use Exception;
use Psr\Http\Message\StreamInterface;
use Psr\Http\Message\UploadedFileInterface;
@@ -19,6 +20,12 @@ class Uploaded implements UploadedFileInterface
];
/**
* @var resource
*/
private mixed $stream;
/**
* @param string $tmp_name
* @param string $name
@@ -39,28 +46,37 @@ class Uploaded implements UploadedFileInterface
/**
* @return StreamInterface
* @throws \Exception
* @throws Exception
*/
public function getStream(): StreamInterface
{
if (!fopen($this->tmp_name, 'r')) {
throw new \Exception('The file "' . $this->name . '" con\'t readable.');
if ($this->stream instanceof Stream) {
return $this->stream;
}
return new Stream(fopen($this->tmp_name, 'r'));
$this->stream = new Stream(fopen($this->tmp_name, 'r+'));
return $this->stream;
}
/**
* @param string $targetPath
* @return \Psr\Http\Message\StreamInterface
* @throws \Exception
* @return StreamInterface
* @throws Exception
*/
public function moveTo($targetPath): StreamInterface
{
@move_uploaded_file($this->tmp_name, $targetPath);
if (!file_exists($targetPath)) {
throw new \Exception('File save fail.');
throw new Exception('File save fail.');
}
if ($this->stream instanceof Stream) {
$this->stream->close();
$this->stream = null;
}
$this->tmp_name = $targetPath;
return $this->getStream();
}
+1 -1
View File
@@ -1,6 +1,6 @@
<?php
namespace Protocol\Message;
namespace Http\Message;
use Psr\Http\Message\UriInterface;
use Swoole\Http\Request;
+3 -3
View File
@@ -6,9 +6,9 @@ use Http\Context\Context;
use Http\IInterface\AuthIdentity;
use JetBrains\PhpStorm\Pure;
use Kiri\Kiri;
use Protocol\Message\Response;
use Protocol\Message\ServerRequest;
use Protocol\Message\Uploaded;
use Http\Message\Response;
use Http\Message\ServerRequest;
use Http\Message\Uploaded;
use Psr\Http\Message\StreamInterface;
use Psr\Http\Message\UploadedFileInterface;
use Psr\Http\Message\UriInterface;
+1 -1
View File
@@ -5,7 +5,7 @@ namespace Server\Constrict;
use Http\IInterface\AuthIdentity;
use JetBrains\PhpStorm\Pure;
use Protocol\Message\ServerRequest;
use Http\Message\ServerRequest;
use Psr\Http\Message\UploadedFileInterface;
/**
+2 -2
View File
@@ -8,8 +8,8 @@ use Http\Context\Context;
use JetBrains\PhpStorm\Pure;
use Kiri\Kiri;
use Psr\Http\Message\StreamInterface;
use Protocol\Message\ServerRequest as RequestMessage;
use Protocol\Message\Response as Psr7Response;
use Http\Message\ServerRequest as RequestMessage;
use Http\Message\Response as Psr7Response;
use Server\ServerManager;
use Server\SInterface\DownloadInterface;
+2 -2
View File
@@ -23,10 +23,10 @@ class ResponseEmitter implements Emitter
/**
* @param mixed $response
* @param \Protocol\Message\Response|ResponseInterface $emitter
* @param \Http\Message\Response|ResponseInterface $emitter
* @throws \Exception
*/
public function sender(mixed $response, ResponseInterface|\Protocol\Message\Response $emitter): void
public function sender(mixed $response, ResponseInterface|\Http\Message\Response $emitter): void
{
if (is_array($emitter->getHeaders())) {
foreach ($emitter->getHeaders() as $name => $values) {
+1 -1
View File
@@ -4,7 +4,7 @@ namespace Server\Constrict;
use JetBrains\PhpStorm\Pure;
use Protocol\Message\Response;
use Http\Message\Response;
use Server\SInterface\DownloadInterface;
/**
+2 -2
View File
@@ -17,10 +17,10 @@ class WebSocketEmitter implements Emitter
/**
* @param mixed $response
* @param ResponseInterface|\Protocol\Message\Response $emitter
* @param ResponseInterface|\Http\Message\Response $emitter
* @throws Exception
*/
public function sender(mixed $response, ResponseInterface|\Protocol\Message\Response $emitter): void
public function sender(mixed $response, ResponseInterface|\Http\Message\Response $emitter): void
{
$server = Kiri::getDi()->get(ServerManager::class)->getServer();
+1 -1
View File
@@ -3,7 +3,7 @@
namespace Server;
use Protocol\Message\Stream;
use Http\Message\Stream;
use Server\Constrict\Response;
use Server\Constrict\ResponseInterface;
use Throwable;
+1 -1
View File
@@ -4,7 +4,7 @@ namespace Server;
use Annotation\Inject;
use Server\Constrict\Response;
use Protocol\Message\Stream;
use Http\Message\Stream;
class Sender
{