![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 19.07.2015 Ostrzeżenie: (0%)
|
Witam,
Poczytałem o mvc i klasie router. Tworzy się coś takiego w linku: htpp/:nazwaKlasy/metoda. Ja mam moduł produkty i stworzyłem dla niego menu i podmenu. i chciałbym osiągnąć coś takiego w linku: http:menu/podmenu/nazwaProduktu. Jak coś takiego zrobić dynamicznie? |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 42 Dołączył: 10.10.2011 Ostrzeżenie: (0%)
|
Korzystasz z jakiegoś frameworka lub sam napisałeś router?
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 19.07.2015 Ostrzeżenie: (0%)
|
wszystko pisze sam od poczatku
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 40 Dołączył: 2.06.2016 Skąd: Olsztyn Ostrzeżenie: (0%)
|
To może podziel się tym jak obecnie napisałeś, bo jak inaczej mamy Tobie podpowiedzieć ?
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 233 Pomógł: 27 Dołączył: 19.10.2014 Ostrzeżenie: (0%)
|
Cos w tym stylu.
Cos na tej zasadziej. Pozniej uzywasz funkcji: Call_user_func Ktora automatycznie binduje parametry do Kontrollera. Wygladalo by to w ten sposob. Jesli osoba jako 3ci parameter wysle naprzyklad id I jest to jedyny parameter to w Kontrolerze mozesz do zdefiniowac naprzyklad:
Jest to dosc szybkie wyjasnienie, lecz jesli poczytasz o funkcji ktora ci podalem, a masz juz podstawowy router, to powinno ci sie udac (IMG:style_emoticons/default/smile.gif) Ten post edytował goartur 13.10.2016, 14:27:01 |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%)
|
Cytat $router = $_GET['request'] questionmark.gif ''; $router = explode('/',$router); Tak z ciekawości to nie uważasz że lekka bzdura ? (IMG:style_emoticons/default/smile.gif) |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 233 Pomógł: 27 Dołączył: 19.10.2014 Ostrzeżenie: (0%)
|
Tak z ciekawości to nie uważasz że lekka bzdura ? (IMG:style_emoticons/default/smile.gif) Mozei bzdura, ale raczej inaczej on tego nie zrobil (IMG:style_emoticons/default/smile.gif) Poza tym zawsze mile czekam na lepsze rozwiazania Ten post edytował goartur 13.10.2016, 20:44:40 |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%)
|
Napisałem bzdura bo w zmiennej GET nie będziesz miał path z URI (IMG:style_emoticons/default/smile.gif)
Tego trzeba szukać w $_SERVER |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 40 Dołączył: 2.06.2016 Skąd: Olsztyn Ostrzeżenie: (0%)
|
Zobacz jak to jest rozwiązane w jakiś frameworkach. Utwórz klasę Routera z metodą dodającą routing (pattern i callback) do tablicy jako klucz stosujesz pattern z przypisanym callbackiem.
Taki pattern pozwoli na wyciągnięcie parametrów Potem metoda uruchamiająca routing przeszukująca utworzoną tablicę foreachem i kiedy znajdzie dopasowanie z przekazanym url użyj call_user_func_array z callbackiem i parametrami zwróconymi przez preg_match url z patternem. Ostatecznie plik z obsługą routingu gdzie używasz metody dodającej routing, a następnie metoda uruchamiająca router z parametrem url jako $_SERVER['REQUEST_URI']. |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 19.07.2015 Ostrzeżenie: (0%)
|
Możecie mi to szczegołowo opisać na przykładzie bo nic z tego nie rozumie.
class router { private $controller; private $action; private $params; public function __construct(){ $path = $_GET['url']; $routParts = explode("/", $path); $this->controller = $routParts[0]; $this->action = isset($routParts[1]) ? $routParts[1] : "index"; array_shift($routParts); array_shift($routParts); $this->params = $routParts; //echo $_GET['url']; } Mam coś takiego co dalej? Ten post edytował stepien 15.10.2016, 09:36:20 |
|
|
|
![]() ![]() |
|
Aktualny czas: 20.12.2025 - 21:44 |