/** * @return Router */ protected function getRouter() { $router = new Router(); $siteRoutes = new RouteGroup(new UrlTemplate(['scheme' => 'http', 'host' => 'example.com'])); $siteRoutes->addRoute(new FinalRoute('homepageResult', new UrlTemplate(['path' => '/']))); $siteRoutes->addRoute(new FinalRoute('itemsResult', new UrlTemplate(['path' => '/items/{itemId}/']))); $siteRoutes->addRoute(new FinalRoute('catsResult', new UrlTemplate(['path' => '/cats/{catId:\\d+:}/']))); $siteRoutes->addModifier((new LanguagePrefixRouteModifier('langModifier'))->setLanguagesIds(['en', 'de', 'fr'])->setDefaultLanguage('en')); $siteRoutes->addModifier(new MobileHostRouteModifier('mobileHostModifier')); $router->addRoute($siteRoutes); $router->addRoute(new AdminRoute('adminResult')); return $router; }
/** * */ public function testAdvancedModifiers() { $router = new Router(); $siteRouteGroup = new RouteGroup(new UrlTemplate(['host' => 'site.com'])); $siteRouteGroup->addModifier((new PrefixModifier())->setPrefix('/site/')); $siteMyRouteGroup = new RouteGroup(); $siteMyRouteGroup->addModifier(new PrefixMyRouteModifier()); $siteMyRouteGroup->addRoute(new FinalRoute('routeResult', new UrlTemplate(['path' => '/orders/']))); $siteRouteGroup->addRoute($siteMyRouteGroup); $router->addRoute($siteRouteGroup); $router->doMatch(RequestContextFactory::createFromUrl('http://site.com/site/my/orders/')); $this->assertEquals('http://site.com/site/my/orders/', $router->generateUrl('routeResult')); }