Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak ma wyglądasz klasa router?
Forum PHP.pl > Forum > Przedszkole
stepien
Witam,

Uczę się php i chce zbudować mały framework w oparciu o mvc. Możecie mi powiedzieć jak zrobić klasę router?
kayman
zbytniej filozofii nie ma

ustalasz sobie jakiś schemat url a router ma rozpoznać parametry tego url i wywołać/przekazać sterowanie jakiemuś kontrolerowi

przykład z sufitu metody GET

domena.pl/artykuly/moja-piekna-strona -> router wywołuje kontroler artykuly a ten już robi co potrzeba by moja-piekna-strona się prawidłowo wyświetliła
!*!
Cytat(kayman @ 5.12.2016, 18:21:55 ) *
domena.pl/artykuly/moja-piekna-strona -> router wywołuje kontroler artykuly a ten już robi co potrzeba by moja-piekna-strona się prawidłowo wyświetliła


Zawsze mnie zastanawiało skąd bierze się ten nawyk nazwy kontrolera jako element URI. Z punktu bezpieczeństwa aplikacji jest to słabe, przy zaawansowanej aplikacji obsługującej chociażby wielojęzyczność również... A mimo to większość FW to poleca i smutek człowieka ogarnia gdy na produkcji, średniej wielkości serwisu widać /article/edit/12 prowadzące do kontrolera Article, metody Edit i parametru 12.

Cytat
Uczę się php i chce zbudować mały framework w oparciu o mvc. Możecie mi powiedzieć jak zrobić klasę router?


Klasa ta ma za zadanie, w zależności od projektu przemielić dane jakie otrzyma od klasy zczytującej URI/URL i przesłać to dalej np. Dispatchera. Jeśli odbierasz "/article/edit/12" to musisz to rozbić np. przy pomocy wyrażeń regularnych sprawdzić czy wzór się zgadza z tym co masz zapisane w pliku

  1. '/[article|blog]/[add|edit]/[0-9]+' => array('controller'=>'superTajnaKlasa', 'method'=>'edit', params=>'$1')
kayman
Cytat(!*! @ 5.12.2016, 18:44:40 ) *
Zawsze mnie zastanawiało skąd bierze się ten nawyk nazwy kontrolera jako element URI. Z punktu bezpieczeństwa aplikacji jest to słabe


owszem słabe, ale to tylko przykład, pytał o router wiec starałem się wytłumaczyć jak najprościej, do zabezpieczeń dojdzie samemu jak będzie chciał
viking
Najlepiej będzie jak zastosujesz gotowe rozwiązanie. Skoro pytasz jak działa router znaczy ze jesteś początkującym, bez dobrych nawyków. Na początek zobacz mikro fw typu slim, zend expressive.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.