Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Jak ma wyglądasz klasa router?
stepien
post 5.12.2016, 17:11:04
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 19.07.2015

Ostrzeżenie: (0%)
-----


Witam,

Uczę się php i chce zbudować mały framework w oparciu o mvc. Możecie mi powiedzieć jak zrobić klasę router?
Go to the top of the page
+Quote Post
kayman
post 5.12.2016, 18:21:55
Post #2





Grupa: Zarejestrowani
Postów: 556
Pomógł: 40
Dołączył: 20.07.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
!*!
post 5.12.2016, 18:44:40
Post #3





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


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')


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
kayman
post 5.12.2016, 19:03:11
Post #4





Grupa: Zarejestrowani
Postów: 556
Pomógł: 40
Dołączył: 20.07.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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ł
Go to the top of the page
+Quote Post
viking
post 5.12.2016, 19:16:58
Post #5





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.04.2024 - 06:31