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%)
-----


Cytat
A po co? Paginacja i szukarka operuje na QUERY_STRINGu /komputery/laptopy/sony.hmyl?page=3&procesor=1
Nice URL patrzy na URL przed "?" i po problemie.
- i doklejony po "?" numer strony już nie wygląda ładnie. I kto ma określać gdzie, kiedy kończy się nice url a zaczyna "?"? Co trzymać w niceurl i bazie a co nie? I jak tworzymy takie linki? Pobieramy nice url z bazy a query string doklejamy?

I wcale nie marudzę, każdy robi jak chce ale Wasz sposób wydaje się mieć zbyt dużo wad:
- dodatkowe zapytania mysql i wzrost transferu z bazy
- algorytm sprawdzający unikalność URLi
- obsługa URLi w bazie
- słaba elastyczność, niska odporność na zmiany i modyfikacje, ciężko dodać zewnętrzną aplikację jako moduł bez pełnej integracji

U mnie jest tylko:
- algorytm generujący nice URLe
- algorytm odczytujący URLe

U Was bardziej rozbudowane będzie generowanie URLi a u mnie odczyt (dochodzi routing).

Cytat
wymaganie klienta aby linki np. w sklepie były bez żadnego ID
- wtedy musimy zrobić unikalny title (lub id oparty o title) i na jego podstawie pobierać treść z bazy, problemu tu nie widzę.

Po mojemu to Wasz sposób jest mało elegancki (widać zmienne np. w paginatorze czy galerii zdjęć) a w dodatku trudniejszy w programowaniu. Standardowy router wrzucający zmienne do tablicy na podstawie znaków typu -;, to przecież żadna czarna magia.
Go to the top of the page
+Quote Post
wiiir
post
Post #3





Grupa: Zarejestrowani
Postów: 260
Pomógł: 34
Dołączył: 22.02.2010

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


Cytat(Pilsener @ 9.09.2010, 09:52:17 ) *
- i doklejony po "?" numer strony już nie wygląda ładnie. I kto ma określać gdzie, kiedy kończy się nice url a zaczyna "?"? Co trzymać w niceurl i bazie a co nie? I jak tworzymy takie linki? Pobieramy nice url z bazy a query string doklejamy?

w bazie nie trzymamy nice urli tylko oryginalny url i alias akrykulu czy strony, Czyli tak naprawde nice linkiem moze byc drzewo aliasow /nazwa_podartykulu/nazwa_artykulu
i w tym wypadku (myslac logicznie) jesli artykul wywolujemy z podartykulu mozemy go pozycjonowac wzgledem calego drzewa

Cytat(Pilsener @ 9.09.2010, 09:52:17 ) *
I wcale nie marudzę, każdy robi jak chce ale Wasz sposób wydaje się mieć zbyt dużo wad:
- dodatkowe zapytania mysql i wzrost transferu z bazy
- algorytm sprawdzający unikalność URLi
- obsługa URLi w bazie
- słaba elastyczność, niska odporność na zmiany i modyfikacje, ciężko dodać zewnętrzną aplikację jako moduł bez pełnej integracji


- wcale nie dodatkowe polaczenie, zarowno u mnie jak i u Ciebie musze nawiazac polaczenie i pobrac jakies parametry zeby stowrzyc ten link
- nie jest potrzebny algorytm ktory bedzie sprawdzal bo w momencie jego utrzworzenia mam 100% szansy ze bedzie unikalny
- tego nie rozumiem
- wlasnie wysoka elastycznosc i duza odpornosc na zmiany, ty jak zmienisz algortym ktory generuje linki musisz zmienic algorytm ktory odczytuje linki ja nie musze bo dla mnie jest niewazne jak on wyglada. W moim przypadku musze zmienic routing gdy dodaje kolejna opcje do linka co w towim przypadku tez jest konieczne. Jeszcze niewidzialem aplikacji do ktorej mozna dolaczyc cos co nie jest kompatybilne bo predzej czy pozniej sie wywali badz wogole nie wlaczy.


Ten post edytował wiiir 9.09.2010, 10:30:13
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: 11.10.2025 - 16:40