From edc7371d9b9c11ce837af1e67c9a9aa90a473761 Mon Sep 17 00:00:00 2001 From: xl Date: Fri, 15 Nov 2024 14:16:37 +0800 Subject: [PATCH] eee --- src/OnRequest.php | 7 +++++-- src/Router.php | 11 +++++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/OnRequest.php b/src/OnRequest.php index 0a838f9..847bd1b 100644 --- a/src/OnRequest.php +++ b/src/OnRequest.php @@ -4,6 +4,8 @@ declare(strict_types=1); namespace Kiri\Router; +use Kiri\Abstracts\CoordinatorManager; +use Kiri\Coordinator; use Kiri\Di\Inject\Container; use Kiri\Di\Context; use Kiri\Di\Interface\ResponseEmitterInterface; @@ -77,8 +79,9 @@ class OnRequest implements OnRequestInterface try { $PsrRequest = $this->initRequestAndResponse($request); - $PsrResponse = $this->router->query($request->server['path_info'], $request->getMethod()) - ->run($PsrRequest); + CoordinatorManager::utility(Coordinator::WORKER_START)->yield(); + + $PsrResponse = $this->router->query($request->server['path_info'], $request->getMethod())->run($PsrRequest); } catch (Throwable $throwable) { $PsrResponse = $this->exception->emit($throwable, $this->constrictResponse); } finally { diff --git a/src/Router.php b/src/Router.php index 6690be5..6033e35 100644 --- a/src/Router.php +++ b/src/Router.php @@ -5,6 +5,8 @@ namespace Kiri\Router; use Closure; use Kiri; +use Kiri\Abstracts\CoordinatorManager; +use Kiri\Coordinator; use Kiri\Router\Validator\ValidatorMiddleware; use Kiri\Router\Base\Middleware as MiddlewareManager; use Kiri\Router\Constrict\RequestMethod; @@ -174,12 +176,17 @@ class Router */ public function scan_build_route(): void { + $coordinator = CoordinatorManager::utility(Coordinator::WORKER_START); + $coordinator->waite(); + $this->read_dir_file(APP_PATH . 'routes'); $container = Kiri::getDi(); - $scanner = di(Kiri\Di\Scanner::class); + $scanner = $container->get(Kiri\Di\Scanner::class); $scanner->load_directory(APP_PATH . 'app/Controller'); $this->reset($container); + + $coordinator->done(); } @@ -190,7 +197,7 @@ class Router */ public function reset(ContainerInterface $container): void { - $router = $container->get(DataGrip::class)->get(static::$type); + $router = $container->get(DataGrip::class)->get(static::$type); foreach ($router->getMethods() as $name => $method) { $middlewares = MiddlewareManager::get($method->getClass(), $method->getMethod()); $validator = MiddlewareManager::getValidator($method->getClass(), $method->getMethod());