2017-05-21 13 views
3

표현식에서 FastRoute에 대한 경로 그룹을 사용하고 싶습니다. 처럼 샘플 : 어떻게 활성화하는 구성을 작성 어디 알아낼 수 없습니다Zend의 FastRoute 그룹 표현식

이제
// ... 
'factories' => [ 
    FastRoute\RouteCollector::class => App\Container\FastRouteCollectorFactory::class, 
    FastRoute\DispatcherFactory::class => App\Container\FastRouteDispatcherFactory::class, 
    Zend\Expressive\Router\RouterInterface::class => App\Container\RouterFactory::class, 
], 
// ... 

과 :

$router = $app->getContainer()->get(FastRoute\RouteCollector::class); 

$router->get('/', App\Action\HomePageAction::class); 

$router->addGroup('/pages', function (FastRoute\RouteCollector $router) { 
    $router->get('', App\Action\PagesIndexAction::class); 
    $router->get('/add', App\Action\PagesAddAction::class); 
    $router->get('/edit/{id}', App\Action\PageEditActionFactory::class); 
    $router->post('/edit/{id}', App\Action\PageEditActionFactory::class); 
    $router->get('/another/{section}[/{subsection}]', PagesAnotherActionFactory::class); 
}); 

나는 문서 (https://docs.zendframework.com/zend-expressive/features/router/fast-route/#advanced-configuration) 를 작성 그리고 router.global.php 자신의 등록으로 공장을 만들어 그것. config/router.php 파일에서이 작업을 수행 할 수 있습니까? 도와주세요.

답변

1

파일을 나머지 구성과 병합하는 한 config.router.php에 넣을 수 있습니다. 이 같은 설정 키를 공유하기 때문에

'dependencies' => [ 
    //.. 
    'invokables' => [ 
     /* ... */ 
     // Comment out or remove the following line: 
     // Zend\Expressive\Router\RouterInterface::class => Zend\Expressive\Router\FastRouteRouter::class, 
     /* ... */ 
    ], 
    'factories' => [ 
     /* ... */ 
     // Add this line; the specified factory now creates the router instance: 
     FastRoute\RouteCollector::class => App\Container\FastRouteCollectorFactory::class, 
     FastRoute\DispatcherFactory::class => App\Container\FastRouteDispatcherFactory::class, 
     // Zend\Expressive\Router\RouterInterface::class => Zend\Expressive\Router\FastRouteRouterFactory::class, // replaced by following line 
     Zend\Expressive\Router\RouterInterface::class => App\Container\RouterFactory::class, 
     /* ... */ 
    ], 
], 

참고 dependencies 키와 그 자신의 RouterFactoryFastRouteRouterFactory을 대체합니다.