• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Routing do prostej strony w php

Object Storage Arubacloud
0 głosów
1,411 wizyt
pytanie zadane 27 września 2017 w PHP przez Szymon Ciompała Mądrala (6,280 p.)
Witam, musze stworzyć prostą stronę do swojej szkoły. Prosty crud z uwierzytelnianiem. Jednak(z pewnych względów) nie moge do tego użyć żadnego frameworka typu symfony. Wymyśliłem sobie że zrobie własna prosta implementacje mvc z własnym routingiem . Przekonałem się jednak, że zrobienie routingu z dynamicznymi parametrami (takimi jak np w symfony /del/books/{id}) nie jest taka prostą sprawą. Przeglądałem internet w poszukiwaniu poradnika. Jednak trochę się zawiodłem. Wszystkie, które znalazłem opierają tworzenie linka na /controllerName/method/params albo /add/books/?id=1 . Ma ktoś może jakiś poradnik ? albo może własne rozwiązanie routingu z dynamicznymi parametrami , gdzie mógłbym podejrzeć jak to zrobić. Czy moze dac sobie z tym spokój i użyć gotowej biblioteki ? albo jakiegoś micro frameworka typu slim ?

Z góry dziękuje za otrzymana pomoc :)
3
komentarz 27 września 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)
Jeśli możesz użyć Slima lub Silexa to osobiście bym użył, nie widzę sensu aby wymyślać koło na nowo.
4
komentarz 27 września 2017 przez xandros Nałogowiec (29,450 p.)

Można coś mniejszego typu fast-route

1
komentarz 27 września 2017 przez CzikaCarry Szeryf (75,340 p.)
Używałem kiedyś fastroute, spełnia swoje zadanie :)

1 odpowiedź

+2 głosów
odpowiedź 29 września 2017 przez mtk3d Nałogowiec (46,690 p.)
wybrane 29 września 2017 przez Szymon Ciompała
 
Najlepsza

Musisz napisać funkcję, która będzie matchować link z patternem.

Powiedzmy, że mamy tablicę, która zawiera przekierowania, przykładowo:

$routes = [
    '/del/books/{id}',
    '/view/{name}'
];

itd.

Ze zmiennej $_SERVER, pobierasz aktualny adres i rozbijasz go funkcją explode po "/".

Teraz iterujesz po tablicy z route'ami i każdy z nich rozdzielasz explodem identycznie jak aktualny adres, a następnie porównujesz z tablicą adresu. Przy pomocy wyrażenia regularnego rozpoznajesz, który element jest parametrem, czyli zawiera "{}" i te porównania ignorujesz.

Jeśli już znajdziesz odpowiadający routing do adresu, to pobierasz z niego te indexy, gdzie są parametry, czyli "{}" i na podstawie tych indeksów zwracasz tablicę z parametrami.

To jest najprostsze rozwiązanie jakie przyszło mi do głowy. Mimo wszystko, jeśli masz taką możliwość, to użyj jakiegoś modułu do routingu, np. FastRoute. Będzie prościej i szybciej.

Podobne pytania

0 głosów
1 odpowiedź 386 wizyt
pytanie zadane 20 września 2019 w PHP przez BlvckFox Gaduła (4,240 p.)
0 głosów
0 odpowiedzi 550 wizyt
pytanie zadane 6 lipca 2019 w PHP przez niezalogowany
0 głosów
2 odpowiedzi 422 wizyt
pytanie zadane 20 stycznia 2018 w PHP przez sapero Gaduła (4,100 p.)

92,551 zapytań

141,399 odpowiedzi

319,531 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...