Шаблон маршрута Silex

Я хочу сделать что-то подобное с Silex:

$app->match('/{page?}/{action?}/{part?}/{detail?}', function() {
});

Таким образом, все 4 элемента могут быть там, но это не нужно. Как мне это сделать?

2 ответа

  1. Необходимо определить значения по умолчанию для параметров, чтобы сделать их необязательными.

    Что-то вроде этого должно работать:

    $app->match('/{page}/{action}/{part}/{detail}', function() {
    })->value('page', 'home')
    ->value('action', 'index')
    ->value('part', 'somePart')
    ->value('detail', 'someDetail');
    
  2. Это работает для меня:

    $app->get('/{wildcard}', function ($wildcard) use ($app, $shared) {
        // ...
    })
    ->assert('wildcard', '.+')
    ->value('wildcard', '');