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
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Menu generuje normalnie, na podstawie drzewa kategorii podpiętego do tego menu. Linki tworzę tak:
  1. echo tworz_url($zmienne_url,$opcje);
resztę robi system, który generuje linki biorąc pod uwagę zmienne URLowe, zmienne serwerowe, konfigurację, subdomeny, parametry typu czy link ma być nice czy ugly oraz routing - można użyć routingu standardowego lub niestandardowego a w Twoim przypadku trzeba poprawiać wszystkie linki w bazie.

A jak będziesz miał link typu stron.pl/artykuly/fajne;zycie;programisty,345-3.html to już nie zadziała bo to link do strony nr 3 tego artykułu? Dodaj do tego parametry i otrzymasz niemal nieskończenie wiele kombinacji różnych linków, chcesz to trzymać w bazie wszystko? I co mnie interesuje jak jest w dżumli czy innych tego typu skryptach zwanych CMSami, statyczne linki to się robiło gdy człowiek się HTML uczył.

Dzisiaj robi się tak, że wrzucasz tablicę parametrów do widoku i tą samą tablicę odbierasz w kontrolerze, natomiast wygląd linku jest sprawą wtórną i odpowiada za to właśnie routing, który definiujesz sobie w pliku cfg. Dzięki temu programista kompletnie nie musi przejmować się wyglądem linków, ustawię sobie w cfg linki zwykłe to będę miał:
stron.pl/index.php?page=artykuly/fajne;zycie;programisty,345-3.html
linki nice, router standard:
stron.pl/artykuly/fajne;zycie;programisty,345-3.html
albo jakiś routing niestandardowy:
stron.pl/fajne-zycie-programisty;artykuly_345,3.html

Ale zawsze do linku wrzucam id artykułu 345, numer strony 3 i tak dalej a otrzymuję to samo w kontrolerze. Jak ktoś zna lepszy sposób to flaszkę stawiam. Już się w życiu statycznych linków naprzepisywałem trochę, widziałem też po kilkaset reguł w .htaccess.
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: 14.10.2025 - 23:04