我可以动态地从Symfony2中的MyBundle / Resources / config / routing.yml文件生成路由吗?

时间:2016-02-06 01:00:19

标签: php symfony routing

如上所述。如何从MyBundle / Resources / config / routing.yml文件访问所有路由名称并将其粘贴到阵列中。我想使用常规表达式从数组中仅使用某些patern来获取值并使用它们来生成导航菜单。有线索吗?

1 个答案:

答案 0 :(得分:2)

最简单的方法是使用Router实例。它有一个名为getRouteCollection的方法,它返回一个RouteCollection。此对象包含有关应用程序所生成的每条路径的所有信息。

$router = $this->get('router'); // The service name
$collection = $router->getRouteCollection(); // The routes
foreach ( $collection->all() as $name => $route ) { // a Route instance
    // Do your regular expression matching here
}

有关详细信息,请查看Symfony\Component\Routing的来源。

如果你想根据其他路线创建路线,我会替换并扩展Router类,然后覆盖上面的方法。