Silex добавить маршрут с более высоким приоритетом, чем существующие маршруты

Мои маршруты Silex определены в конфигурационном файле routing.yml.

В своем php-коде я хотел бы добавить несколько новых маршрутов динамически, и я хочу, чтобы эти маршруты имели более высокий приоритет, чем маршруты, определенные в routing.yml.

В настоящее время я добавляю свои маршруты, как в следующем примере, но они добавляются внизу, то есть с самым низким приоритетом.

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

Этот маршрут, например, никогда не совпадает, потому что в routing.yml есть маршрут, который соответствует следующему пути:

path: /{contenttypeslug}/{slug}

Как добавить мои новые маршруты выше существующих?

Кроме того, я использую Bolt CMS, которая построена на Silex, и пытаюсь добавить эти новые маршруты в расширение болта. Поскольку этот вопрос касается маршрутизации Silex, тот факт, что я использую Bolt, не должен иметь большого значения.

1

Решение

Это не очень чистое решение, но всякий раз, когда я отменял маршрут расширения в моем routing.ymlЯ просто добавляю маршрут расширения в routing.yml снова, указывая его на мой код расширения. Если вы поместите его ближе к вершине, он привыкнет, потому что в Silex маршруты анализируются «сверху вниз». Первый матч привыкает.

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

Я прошу прощения за хакерство этого решения.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector