Silex 添加比已有路由优先级更高的路由

Silex add route with higher priority than existing routes

我的 Silex 路由在 routing.yml 配置文件中定义。

在我的 php 代码中,我想动态添加一些新路由,并且我希望这些路由具有比 routing.yml 中定义的路由更高的优先级。

目前我正在添加我的路由,如下例所示,但它们被添加到底部,即优先级最低。

    $this->app->match('/page/{slug}', array($this, 'record'))
        ->bind('extrapages')
        ->method('GET|POST');

例如,此路由永远不会匹配,因为 routing.yml 中有一条路由与以下路径匹配:

path: /{contenttypeslug}/{slug}

如何在现有路线之上添加我的新路线?

顺便说一句,我正在使用基于 Silex 构建的 Bolt CMS,并尝试在螺栓扩展中添加这些新路线。因为这个问题是关于 Silex 路由的,所以我使用的是 Bolt 应该不会有太大的不同。

这不是一个非常干净的解决方案,但每当我在 routing.yml 中否决了扩展程序的路由时,我只需再次将扩展程序的路由添加到 routing.yml,将其指向我的扩展程序代码。如果你把它放在顶部附近,它就会被使用,因为在 Silex 中路由被解析 'top down'。使用第一场比赛。

sitemap:
    path: /sitemap
    defaults: 
        _controller: 'Bolt\Extension\Bolt\Sitemap\Extension::sitemap'

对于此解决方案的不当之处,我深表歉意。