如何使用自定义路由器与Slim框架2


How To Use A Custom Router With Slim Framework 2?

尝试获取Slim框架中加载的所有路由列表。需要知道如何使用自定义Router类,它添加了一个方法来获取受保护的$routes属性。

似乎您可以覆盖Slim'Slim构造器并设置它将使用的路由器,或者您可以命名所有路由,然后使用Slim'Router::getNamedRoutes()方法访问集合。

<?php
$application->get(
    '/api',
    function () use ($application) {
        $routes = [];
        foreach ($application->router()->getNamedRoutes() as $route) {
            $routes[] = $route->getPattern();
        } 
        $application->response->headers->set('Content-Type', 'application/json');
        echo json_encode([
            'total' => count($routes),
            'routes' => $routes
        ]);
    }
)->name('api');

返回。

{
    total: 1,
    routes: [
        "/api"
    ]
}