Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> NiceURL w MVC ?
zembi1991
post
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...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wiiir
post
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
Go to the top of the page
+Quote Post

Posty w temacie
- zembi1991   NiceURL w MVC ?   1.09.2010, 20:33:49
- - dr_bonzo   CytatURL wygladal by mniej wiecej tak : "?con...   1.09.2010, 20:39:19
- - zembi1991   hmm.. nie bardzo rozumiem jak by to mialo dzialac ...   1.09.2010, 20:50:19
- - dr_bonzo   Ja to robie przed zbudowaniem kontrolera. Jako plu...   1.09.2010, 21:00:23
- - Pilsener   Najlepiej przyjąć, że: - wszystkie żądania wysyłam...   1.09.2010, 21:21:49
- - Crozin   Wątek nie ma de facto nic wspólnego z samym wzorce...   1.09.2010, 21:27:29
- - dr_bonzo   @Crozin - nie o taką mapę mi chodziło - ty prezent...   7.09.2010, 07:51:00
- - wiiir   poniewaz aktualnie siadlem do pisania cms, ja mam ...   7.09.2010, 10:30:14
- - Pilsener   To co napisałeś to jakiś koszmar, mam utworzyć adr...   8.09.2010, 08:43:15
|- - wiiir   Cytat(Pilsener @ 8.09.2010, 09:43:15 ...   8.09.2010, 09:37:44
- - Pilsener   Menu generuje normalnie, na podstawie drzewa kateg...   8.09.2010, 12:35:37
- - wiiir   Tyle ze moim przypadku moge zrobic sobie np [HTML]...   8.09.2010, 14:47:48
- - Pilsener   [HTML] pobierz, plaintext strona.pl/to-jest-kolejn...   8.09.2010, 18:42:52
|- - wiiir   Cytat(Pilsener @ 8.09.2010, 19:42:52 ...   8.09.2010, 19:49:30
- - dr_bonzo   Cytat- a jak ktoś doda np. artykuł zawierający ide...   8.09.2010, 18:50:52
- - Pilsener   CytatA po co? Paginacja i szukarka operuje na QUER...   9.09.2010, 08:52:17
|- - wiiir   Cytat(Pilsener @ 9.09.2010, 09:52:17 ...   9.09.2010, 10:28:30
- - dr_bonzo   CytatPo mojemu to Wasz sposób jest mało elegancki ...   9.09.2010, 09:02:36
- - Pilsener   CytatUżywasz za każdym razem drzewa kategorii? - t...   9.09.2010, 09:22:53
- - Pilsener   Cytatw bazie nie trzymamy nice urli tylko oryginal...   9.09.2010, 12:12:19
- - dr_bonzo   CytatCytatnie jest potrzebny algorytm ktory bedzie...   9.09.2010, 13:57:12
- - marcio   @dr_bonzo mozesz pokazac jak mapujesz te url w rou...   9.09.2010, 14:00:46


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: 3.10.2025 - 15:14