Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5bda66b40d | |||
| e82fad2fcb | |||
| 16eb6b11c5 | |||
| 227b6fa512 | |||
| c06ab29054 | |||
| 3ccf08fdfb | |||
| 292ccc84de | |||
| edc7371d9b |
+8
-18
@@ -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;
|
||||
@@ -73,12 +75,14 @@ class OnRequest implements OnRequestInterface
|
||||
*/
|
||||
public function onRequest(Request $request, Response $response): void
|
||||
{
|
||||
/** @var CQ $PsrRequest */
|
||||
try {
|
||||
$PsrRequest = $this->initRequestAndResponse($request);
|
||||
/** @var CQ $PsrRequest */
|
||||
Context::set(ResponseInterface::class, new ConstrictResponse($this->response->contentType));
|
||||
$PsrRequest = Context::set(RequestInterface::class, CQ::builder($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 {
|
||||
@@ -86,18 +90,4 @@ class OnRequest implements OnRequestInterface
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @return ServerRequestInterface
|
||||
*/
|
||||
public function initRequestAndResponse(Request $request): ServerRequestInterface
|
||||
{
|
||||
$response = new ConstrictResponse($this->response->contentType);
|
||||
|
||||
Context::set(ResponseInterface::class, $response);
|
||||
|
||||
return Context::set(RequestInterface::class, CQ::builder($request));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+8
-1
@@ -4,7 +4,10 @@ declare(strict_types=1);
|
||||
namespace Kiri\Router;
|
||||
|
||||
use Closure;
|
||||
use Kiri\Server\Events\OnWorkerStart;
|
||||
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 +177,16 @@ class Router
|
||||
*/
|
||||
public function scan_build_route(): void
|
||||
{
|
||||
$coordinator = CoordinatorManager::utility(Coordinator::WORKER_START);
|
||||
|
||||
$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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user