![]() |
![]() |
![]()
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: 260 Pomógł: 34 Dołączył: 22.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
poniewaz aktualnie siadlem do pisania cms, ja mam taki pomysl. U mnie kazda strona tj. arktykuly itd bedzie tworzyl uzytkownik (wiadoma sprawa) w momencie tworzenia bedzie musial zdefiniowac typ dokumentu (czyli jaki modul bedzie za to odpowiedzialny), zostanie mu nadany jakis id dokumentu, wiec juz teraz jestem w stanie okreslic link do tego dokumentu i powiedzmy ze ma on taka forme /index.php?kontroler=artykul&id=20. Cos takiego zapisuje do bazy w tabeli np linki. Oczywiscie sa tam kolumny ktore definiuja nasz nice url np artykul/20 oraz prawdziwy url i inne rzeczy (IMG:style_emoticons/default/smile.gif)
Nastepnie robie sobie clase ktora pobiera mi wszystkie dane z tabli linki odszukuje co trzeba w wynikach odpowiednimi metodami clasy i znam prawidlowy url z ktorego latwo moge wyciagnac typ kontrolera i id z tego artykul/20 bedzie ciezko ale z tego kontroler=artykul&id=20 juz nie ... robimy explode po & i mamy 2 parametry (IMG:style_emoticons/default/smile.gif) Oczywiscie jest to wszystko bardzo uproszczone ale jak widac mozna to latwo rozbudowac dodajac jakies np jakis task, option itd Co moge jeszcze dodac to jest to, ze gdy ktos bedzie nam wpisywac jakies scierwo do urla np pod id to nie bedzie tego w zapytaniu ktory szuka id podanym w url, poniewaz wszystkie dane bede mial pobrane niezaleznie od tego co jest w url-u pozniej wystarczy jak pisalem odnalesc szukany przez nas link i okreslic co trzeba uruchomic.. Daje ci to przewage nad tym ze nie musisz definiowac wszystkich mozliwych wzorcow tylko jeden i kazdy odnosi sie do index.php i to jest moim zdaniem najlepsze rozwiazanie Ten post edytował wiiir 7.09.2010, 11:22:30 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 15:14 |