From cf964f44721c7b82b48fc9e551ae9426f6a46210 Mon Sep 17 00:00:00 2001 From: Dmitriy Derepko Date: Sun, 4 Dec 2022 15:46:59 +0300 Subject: [PATCH] Add routes action (#72) --- config/routes.php | 3 +++ src/Controller/InspectController.php | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/config/routes.php b/config/routes.php index 3f1c5b6..5c4f06a 100644 --- a/config/routes.php +++ b/config/routes.php @@ -88,6 +88,9 @@ static function (ResponseFactoryInterface $responseFactory, ValidatorInterface $ Route::get('/files') ->action([InspectController::class, 'files']) ->name('files'), + Route::get('/routes') + ->action([InspectController::class, 'routes']) + ->name('routes'), Route::get('/translations') ->action([InspectController::class, 'getTranslations']) ->name('getTranslations'), diff --git a/src/Controller/InspectController.php b/src/Controller/InspectController.php index 5af42a6..db135e6 100644 --- a/src/Controller/InspectController.php +++ b/src/Controller/InspectController.php @@ -17,6 +17,7 @@ use Yiisoft\Aliases\Aliases; use Yiisoft\Config\ConfigInterface; use Yiisoft\DataResponse\DataResponseFactoryInterface; +use Yiisoft\Router\RouteCollectionInterface; use Yiisoft\Translator\CategorySource; use Yiisoft\VarDumper\VarDumper; use Yiisoft\Yii\Debug\Api\Inspector\ApplicationState; @@ -279,6 +280,25 @@ public function getCommands(ConfigInterface $config): ResponseInterface return $this->responseFactory->createResponse($result); } + public function routes(RouteCollectionInterface $routeCollection): ResponseInterface + { + $routes = []; + foreach ($routeCollection->getRoutes() as $route) { + $data = $route->__debugInfo(); + $routes[] = [ + 'name' => $data['name'], + 'hosts' => $data['hosts'], + 'pattern' => $data['pattern'], + 'methods' => $data['methods'], + 'defaults' => $data['defaults'], + 'override' => $data['override'], + 'middlewares' => $data['middlewareDefinitions'], + ]; + } + $response = VarDumper::create($routes)->asJson(false, 5); + return $this->responseFactory->createResponse(json_decode($response, null, 512, JSON_THROW_ON_ERROR)); + } + public function runCommand( ServerRequestInterface $request, ContainerInterface $container,