diff --git a/.idea/HDK-Core.iml b/.idea/HDK-Core.iml
index 9c2851a..02cf85b 100644
--- a/.idea/HDK-Core.iml
+++ b/.idea/HDK-Core.iml
@@ -30,7 +30,6 @@
-
@@ -110,7 +109,6 @@
-
@@ -158,6 +156,8 @@
+
+
diff --git a/.idea/php.xml b/.idea/php.xml
index f1fe920..557e11b 100644
--- a/.idea/php.xml
+++ b/.idea/php.xml
@@ -46,7 +46,6 @@
-
@@ -130,7 +129,6 @@
-
@@ -176,6 +174,8 @@
+
+
diff --git a/src/I18n/Enum/Languages.php b/src/I18n/Enum/Languages.php
new file mode 100644
index 0000000..4181389
--- /dev/null
+++ b/src/I18n/Enum/Languages.php
@@ -0,0 +1,28 @@
+
+ * Powered by PhpStorm
+ * Created on 2023/9/26
+ */
+
+namespace Singularity\HDK\Core\I18n\Enum;
+
+use function Hyperf\Config\config;
+
+enum Languages: string
+{
+ case ZH_CN = 'zh_CN';
+
+ case EN = 'en';
+
+ public static function getLanguage(string $language): Languages
+ {
+ return match ($language) {
+ 'en', 'en_us', 'en-us', 'en-uk', 'en_uk' => self::EN,
+ 'zh', 'zh_cn', 'zh-cn' => self::ZH_CN,
+ default => self::from(config('translation.locale')),
+ };
+ }
+}
diff --git a/src/Middleware/InternationalizationMiddleware.php b/src/Middleware/InternationalizationMiddleware.php
index 45388b6..5faafe2 100644
--- a/src/Middleware/InternationalizationMiddleware.php
+++ b/src/Middleware/InternationalizationMiddleware.php
@@ -12,10 +12,9 @@ use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface;
+use Singularity\HDK\Core\I18n\Enum\Languages;
use Symfony\Component\HttpFoundation\Request;
-use function Hyperf\Config\config;
-
/**
* Singularity\HDK\Utils\Middleware\InternationalizationMiddleware@HDK
*
@@ -41,12 +40,8 @@ class InternationalizationMiddleware implements MiddlewareInterface
$language = $req->getPreferredLanguage();
if (!empty($language)) {
- $language = match (strtolower($language)) {
- 'en', 'en_us', 'en-us', 'en-uk', 'en_uk' => 'en',
- 'zh', 'zh_cn', 'zh-cn' => 'zh_CN',
- default => config('translation.locale'),
- };
- $this->translator->setLocale($language);
+ $language = Languages::getLanguage($language);
+ $this->translator->setLocale($language->value);
}
$response = Context::get(ResponseInterface::class);
$response = $response->withAddedHeader(
diff --git a/tests/Unit/RequestServiceTest.php b/tests/Unit/RequestServiceTest.php
new file mode 100644
index 0000000..1186bd1
--- /dev/null
+++ b/tests/Unit/RequestServiceTest.php
@@ -0,0 +1,36 @@
+
+ * Powered by PhpStorm
+ * Created on 2023/9/20
+ */
+
+namespace Singularity\HDK\Test\Core\Unit;
+use Singularity\HDK\Core\Http\RequestService;
+use Singularity\HDK\Core\Http\RequestServiceFactory;
+
+class RequestServiceTest
+{
+ private RequestService $service;
+
+ public function __construct()
+ {
+ $this->service = RequestServiceFactory::make();
+ }
+
+ public function getInstance(): RequestService
+ {
+ return $this->service;
+ }
+}
+
+test('Http 请求服务可以正常使用', function () {
+ /** @var RequestServiceTest $class */
+ $class = \Hyperf\Support\make(RequestServiceTest::class);
+ $response = $class->getInstance()->requestGet('https://baidu.com/');
+ $content = $response->getBody()->getContents();
+ expect($content)->toBe('');
+})->only();