From 8778cd220f10d263059aaebce9a01fcb9c61541d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=91=E6=9E=97?= Date: Wed, 31 Dec 2025 06:46:30 +0000 Subject: [PATCH 1/2] ea MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 向林 --- composer.json | 5 ++++- src/Response.php | 43 ------------------------------------------- src/function.php | 45 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 44 deletions(-) create mode 100644 src/function.php diff --git a/composer.json b/composer.json index 563aea5..8022fd5 100644 --- a/composer.json +++ b/composer.json @@ -17,6 +17,9 @@ "autoload": { "psr-4": { "Kiri\\Router\\": "./src" - } + }, + "files": [ + "./src/function.php" + ] } } diff --git a/src/Response.php b/src/Response.php index 0782895..7cc6ebb 100644 --- a/src/Response.php +++ b/src/Response.php @@ -4,53 +4,10 @@ declare(strict_types=1); namespace Kiri\Router; use Kiri\Di\Interface\ResponseEmitterInterface; -use Kiri\Router\Blade\BladeFactory; -use Kiri\Router\Blade\BladeHelper; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\StreamInterface; -/** - * 渲染 Blade 视图 - * - * @param string $path 视图路径(支持 . 分隔,如 'user.profile') - * @param array $data 视图数据 - * - * @return ResponseInterface - */ -function View(string $path, array $data = []): ResponseInterface -{ - $response = \response(); - $response->withAddedHeader('Content-Type', 'text/html; charset=utf-8'); - - try { - // 获取视图路径和缓存路径 - $viewPath = APP_PATH . 'resources/view'; - $cachePath = storage(null, 'view/cache'); - - // 创建或获取 BladeFactory 实例 - $factory = BladeHelper::getFactory(); - if ($factory->getViewPath() !== $viewPath) { - $factory = new BladeFactory($viewPath, $cachePath); - BladeHelper::setFactory($factory); - } - - // 渲染视图 - return $response->html($factory->render($path, $data)); - } catch (\Exception $throwable) { - \Kiri::getLogger()->json_log($throwable); - - ob_start(); - - extract(['errorData' => $throwable], EXTR_SKIP); - include __DIR__.'/template/error.php'; - - $message = ob_get_clean(); - - return $response->html($message); - } -} - /** * */ diff --git a/src/function.php b/src/function.php new file mode 100644 index 0000000..2e9a77f --- /dev/null +++ b/src/function.php @@ -0,0 +1,45 @@ +withAddedHeader('Content-Type', 'text/html; charset=utf-8'); + + try { + // 获取视图路径和缓存路径 + $viewPath = APP_PATH . 'resources/view'; + $cachePath = storage(null, 'view/cache'); + + // 创建或获取 BladeFactory 实例 + $factory = BladeHelper::getFactory(); + if ($factory->getViewPath() !== $viewPath) { + $factory = new BladeFactory($viewPath, $cachePath); + BladeHelper::setFactory($factory); + } + + // 渲染视图 + return $response->html($factory->render($path, $data)); + } catch (\Exception $throwable) { + \Kiri::getLogger()->json_log($throwable); + + ob_start(); + + extract(['errorData' => $throwable], EXTR_SKIP); + include __DIR__.'/template/error.php'; + + $message = ob_get_clean(); + + return $response->html($message); + } +} \ No newline at end of file From 76d2d2c64e7c5ca7fe3a3e25b01ec8f0d9cde12e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=91=E6=9E=97?= Date: Wed, 31 Dec 2025 06:47:28 +0000 Subject: [PATCH 2/2] xxx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 向林 --- src/function.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/function.php b/src/function.php index 2e9a77f..2b1c8a3 100644 --- a/src/function.php +++ b/src/function.php @@ -1,5 +1,8 @@