Cześć wszystkim, ostatnio mam ogromny problem z zaimplementowaniem parametrów w hobbystycznie rozwijanym routerze. Sprawę przedstawię abstrakcyjnie, bez kodu, gdyż chcę implementować sam swoje rozwiązania kodu. Nie szukam gotowców, szukam po prostu naprowadzenia, czy otwartych Waszych propozycji odnośnie rozwiązania tego problem. Także do rzeczy...
Mój system wygląda ogólnikowo w taki sposób, że za pomocą publicznej metody klasy przypisuję do tablicy zarejestrowaną część URI wraz z kontrolerem, ta oto ścieżka jest swoistym ,,kluczem" do uzyskania kontrolera i wszelkich danych, które należą do ścieżki na stronie. Następnie przy reloadzie strony, pobieram indeks REQUEST_URI z superglobalnej tablicy $_SERVER i wyszukuję odpowiednią ścieżkę w tablicy. Prawda, że łatwe?
Przykład:
static private array $registeredRoutes = [
'GET' => [
'/oto/moja/sciezka' => ['jakies dane o niej 1'],
'/oto/$id/moja/$argument/sciezka' => ['jakies dane o niej 2']
],
'POST' => []
];
Sprawa komplikuje się przy dodawaniu dynamicznych tras, gdyż nie wiem w jaki sposób za pomocą requesta odnaleźć te dane. One nie pasują do zarejestrowanej ścieżki, kiedy zamienię części URI na parametry.
Moje pytanie brzmi, jakie macie propozycje? Szukając w sieci natrafiłem na rejestrowanie ścieżek dynamicznych, gdzie każdy argument jest wyrażeniem regularnym, ale to raczej odpada, no chyba, że to jedyne rozwiązanie.
Pozdrawiam