drupal修改已定义的路由的方法

drupal 作为一个相对复杂的网站系统,有很多设计概念需要理解和挖掘。

这里说一下drupal路由系统,已知drupal使用xxx.routing.yml文件定义路由。


在某些场景下,可能更希望通过代码动态修改已定义的路由。

drupal 利用 RoutingEvents::ALTER 事件触发器触发路由处理。同时提供了\Drupal\Core\Routing\RouteSubscriberBase 类,重写alterRoutes方法,修改一些路由。


该方法接收一个collection的参数,可以通过get方法获取某个指定的路由,再setPath修改这个路由。


定义好类,需要在xxx.services.yml 添加这个服务的订阅即可。