Router php

Założony przez  NiespecjalnieUzdolniony.

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!
Jak czytasz mój post to sprawdź czy go nie zedytowałem bo niezdecydowany jestem.
Przekierowanie wszystkich adresów (htaccess) do głównego pliku w którym będziesz miał opisany routing.
Sprawdzanie wybranego adresu pod kątem pasującego wzorca i wybranie określonej akcji.
Co do samego skryptu to jest wiele gotowych pakietów, np. https://github.com/silexphp/Silex http://symfony.com/doc/current/component...ction.html
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?
Jak czytasz mój post to sprawdź czy go nie zedytowałem bo niezdecydowany jestem.
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?
Jak czytasz mój post to sprawdź czy go nie zedytowałem bo niezdecydowany jestem.
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ę
$_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?
Jak czytasz mój post to sprawdź czy go nie zedytowałem bo niezdecydowany jestem.
(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ć.



Użytkownicy przeglądający ten wątek:

1 gości