Мои маршруты 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, не должен иметь большого значения.
Это не очень чистое решение, но всякий раз, когда я отменял маршрут расширения в моем routing.yml
Я просто добавляю маршрут расширения в routing.yml
снова, указывая его на мой код расширения. Если вы поместите его ближе к вершине, он привыкнет, потому что в Silex маршруты анализируются «сверху вниз». Первый матч привыкает.
sitemap:
path: /sitemap
defaults:
_controller: 'Bolt\Extension\Bolt\Sitemap\Extension::sitemap'
Я прошу прощения за хакерство этого решения.
Других решений пока нет …