Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Jak ma wyglądasz klasa router?
stepien
post
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
 
Start new topic
Odpowiedzi (1 - 4)
kayman
post
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
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')
Go to the top of the page
+Quote Post
kayman
post
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
Post #5





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 21:31