![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 20.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
niedawno postanowilem sie troche podszkolic w programowaniu obiektowym i napisac aplikacje wykorzystujac MVC, troche glowkowalem i wszystko jakos ogarnalem, chodiz fajnie... z tym ze nie chce pozniej sie bawic w tworzenie przyjaznych URL-i gdy juz wszystko bedize gotowe... wiec postanowilem to zrobic teraz, zanim stworze cala strukture podstron... W kazdym razie przejdzmy do wlasciwego problemu, jak mi wiadomo gdy opieramy sie na MVC wywolanie jakiejs akcji tudziez podstrony polega na podaniu kontrollera i pozniej opcjonalnie akcji i ewentualnie dodatkowych parametrow. a wiec np. jezeli na stronie chcialbym wyswietlic jakas kategorie, wyciagana z bazy, URL wygladal by mniej wiecej tak : "?controller=kategorie&action=pokaz&kat=agd" w takim przypadku stworzenie przyjaznych linkow w formie "/kategorie/pokaz/agd/" nie jest problemem... jednak zalezalo by mi, jezeli jest to mozliwe wogole, aby link mial postac duzo prostsza... a mianowicie nie pokazywal kontrollera i akcji, a bezposrednio kategorie: "/agd/" . Wydaje mi sie ze bylo by to dobre rozwiazanie, zwlaszcza gdyby w linku byla kategoria i podkategoria, nie mowiac jzu o przypadku gdyby ich nazwy skladaly sie z kilku slow, gdyby do tego jeszcze dorzucic nazwe kontrolera i akcji, link moglby urosnac do zbyt duzych rozmiarow.... a wiec moje pytanie brzmi, czy jest taka mozliwosc? bo nie moge wymyslic, jak w takim razie router rozpoznal by ktory kontroller i ktora akcje ma odpalic... |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Najlepiej przyjąć, że:
- wszystkie żądania wysyłamy do /index.php - standardem są nice_url - mamy routing standardowy, który ma postać np: strona.pl/moduł/kontroler/akcja/param1/val1/param2/val2 Jeśli z jakiś powodów nice_url off, to link wygląda tak: strona.pl/index.php?page=moduł/kontroler/akcja/param1/val1/param2/val2 Tu moim zdaniem nie warto bawić się w module=moduł&controller=kontroler itd. Nice są standardem a tradycyjne linki sytuacją awaryjną, ułatwia nam to imlementację i mamy tylko jedną uniwersalną regułę w .htaccess Linki generujemy jakąś funkcją typu: - w parametrach decydujemy, czy link ma np. zapamiętywać zmienne z adresu, którego routingu użyć (możemy używać wszak niestandardowych), czy link ma być przyjazny czy nie i tak dalej Samo okodowanie tego także jest proste, wystarczy klasa powiedzmy "router" parsująca adres, schody zaczynają się dopiero przy niestandardowych routingach, dlatego tu znów warto rozbudować standardowy router o takie założenia jak: - znak / oddziela kontroler, akcję moduł itd. - znak ; słowa kluczowe - znak , parametry - znak - numer strony Najlepsza oczywiście jest jedna, spójna koncepcja i jeden routing - niestandardowe przydają się, gdy trzeba dodać zewnętrzną aplikację jako moduł, zachować kompatybilność wsteczną linków i tak dalej. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 11:01 |