Siemka,
Czy ktokolwiek z was robił kiedyś router adresów w phpie lub ktoś wie jak to się robi?
Jeżeli tak to proszę wyjaśnijcie mi jak to działa.
Dzięki!
Gdybym zrobił tak:
- pobieram wzorzec np "position/lang"
- pobieram parametry z url i po przetworzeniu mam "home/pl"
- tworzę tablicę asocjacyjną
- $parametr['position']='home';
- $parametr['lang']='pl';
- później kontroler przekierowań na podstawie $parametr['position'] dobrałby odpowiednie informacje do wyświetlenia
Czy to już można nazwać routerem?
Jeżeli spełnia założone zadanie to pewnie tak.
To teraz pytanie jak go rozwinąć
//Obsługa większej ilości kontrolerów?
Są jakieś zagrożenia bezpieczeństwa? Czy powinienem zabezpieczyć wartości z urla?
Jeżeli potrzebujesz czegoś do projektu co będzie na pewno działało, to proponowałbym użyć gotowego komponentu. Będzie bezpieczniej i pewniej.
Jeżeli chcesz to zrobić w celach nauki to nie ma problemu.
Tworzysz tablicę z Twoim routingiem - zbiór opisanych akcji. Można to opakować jako funkcje, tablice, plik konfiguracyjny itp.
Podajesz w nim metodę, określony adres (wzorzec), wykonywaną akcję. Tutaj także można to różnie zrobić (wykonywanie akcji w tym samym pliku, odniesienie do funkcji, całej klasy itp.)
Pobierasz adres i metodę
Kod PHP:
$_SERVER['REQUEST_URI']
$_SERVER['REQUEST_METHOD']
Porównujesz pobrany adres ze swoją tablicą routingu i wykonujesz akcję.
Co do bezpieczeństwa to nie includować plików prosto z adresu
Hmm.. a po co mi metoda?
Czy to ma związek z formularzami?
(25.03.2016, 15:20)NiespecjalnieUzdolniony napisał(a): [ -> ]Czy to ma związek z formularzami?
Tak. W sumie to mógłbyś to rozpoznawać nawet gdzieś dalej w aplikacji, jaką metodą zostało wysłane żądanie. Jednak jak już piszesz routing to można to tutaj umieścić.