Несколько дополнительных сегментов префикса пути для подсветки маршрутизации - PullRequest
1 голос
/ 10 июля 2019

Я внедряю многоязычный (а также многопользовательский) сайт с поддержкой AMP. Для этого моя структура URL выглядит следующим образом:

/{language?}/{amp?}/{page?}

Для домашней страницы (/) у вас могут быть следующие версии:

/
/nl
/en
/amp
/nl/amp
/en/amp

Для другой страницы, скажем / о, у вас могут быть следующие версии:

/about
/nl/about
/en/about
/amp/about
/nl/amp/about
/en/amp/about

Я использую библиотеку Illuminate Routing.

Теперь я использую 4 строки кода. Проблема не в том, что он не работает, а в том, что мне не нравится, КАК я его решил, потому что для каждого сегмента, который я хочу добавить в будущем, количество линий увеличивается экспоненциально. Для префикса с 3 необязательными сегментами мне нужно 8 строк кода, а 4 необязательных сегмента - 16 строк и т. Д.

Route::group(["prefix"=>"/"],$ROUTES);
Route::group(["prefix"=>"/{lang?}","where"=>["lang"=>implode("|",$LANGS)]],$ROUTES);
Route::group(["prefix"=>"/{amp?}","where"=>["amp"=>"amp"]],$ROUTES);
Route::group(["prefix"=>"/{lang?}/{amp?}","where"=>["lang"=>implode("|",$LANGS),"amp"=>"amp"]],$ROUTES);

Эти 4 строки работают так, как они должны работать, но я хочу увидеть решение с 1 строкой кода (или хотя бы несколькими), где я могу легко добавить сегмент и где мне не нужно копировать все существующие линии, а затем новый сегмент для всех новых.

...