Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MVC] mapowanie
NorthPole
post
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 20.02.2007
Skąd: Kraków

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


Witam

Zwracam się do was z prośbą o pomoc w wyciągnięciu mnie z totalnego zapętlenia związanego z mvc.
Piszę szkielet podpatrując gotowe rozwiązania. Ale gnębi mnie problem powiązania mapowania urli z wyborem widoku.
Zrobiłem to dość tradycyjnie to znaczy url wygląda tak: /kontroler/akcja/klucz/wartość/...
I wszystko działa frontKontroler zbiera żądanie i przenosi mnie do kontrolera akcji który wybiera akcję a ona ewentualnie korzysta z dalszych parametrów z urla.
Akcje są metodami wywoływanymi przez obiekt kontrolera. Więc pisząc jakiegoś prostego cms'a projektuje wszystkie możliwe akcje i przydzielam im widoki.

No i właśnie tutaj mam problem tak rozumując dostaje koszmarnie długi adres np:
/kontroler_galeria/akcja_pokaz/klucz_co/wartość_id-galerii/
Przecież tylko dwa ostatnie elementy mogą być modyfikowane podczas aktualizacji strony - administrator tworzy sobie nową galerią, która ma przypisany id-galerii.
Jak to skrócić?

Ja wiem, że to kwestja "implementacji”, ale chciałbym się dowiedzieć jak to u was wygląda, jak radzicie sobie z aktualizacją - rozbudową - dodawaniem podstron?

Gdzieś pewnie w moim rozumowaniu tkwi błąd ale kurcze nie wiem gdzie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
menic
post
Post #2





Grupa: Zarejestrowani
Postów: 493
Pomógł: 0
Dołączył: 14.06.2003
Skąd: Tomaszów Lubelski/Rzeszów

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


Ale w czym ci ten dlugi adres przeszkadza?


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
NorthPole
post
Post #3





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 20.02.2007
Skąd: Kraków

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


Cytat(menic @ 4.06.2007, 12:07:42 ) *
Ale w czym ci ten dlugi adres przeszkadza?

No niby w niczym, ale w czasach "przyjaznych urli" taka zbitka jest przerażająca poza tym nurtuje mnie jeszcze problem wyciągania informacji z modelu dla wyświetlanego widoku.

Takie elementy strony jak title, keywords, description powinny być zapisane w bazie dla każdego widoku-strony, więc akcja musi zasysać informacje z modelu w zależności od tego czy są jakieś dodatkowe parametry w urlu czy nie (jak nie ma to domyślny widok z title,keywords itd, a jak są to odpowiednio dla wybranego id). Więc jak to trzymać w bazie jak powiązać żądanie z wyborem danych dla widoku?
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


/kontroler_galeria/akcja_pokaz/klucz_co/wartość_id-galerii/

nie piszesz slow jak 'kontroler', 'akcja' i masz

/galeria/pokaz/klucz_co/wartość_id-galerii/

potem (patrz Routes w Zend FW, RoR i chyba tez innych)

mozesz zamienic

/galeria/nazwa_galerii_galerii -> kotroler = galeria, akcja = pokaz, a po nazwie szukasz odpowiedniej galerii


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Ludvik
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

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


Nie rozumiem tylko po co w tym URL znajdują się takie słowa jak kontroler, akcja, klucz... Przecież to nikomu się nie przyda. Jak usuniesz to url wygląda już ładniej:

/galeria/pokaz/id/2/

Możesz też się pozbyć tego "id" mapując kolejno elementy ścieżki na parametry. Musisz stworzyć tylko odpowiednią mapę do tego (bądź innego) schematu.

/kontroler/akcja/1/2/3/... Gdzie mapujesz 1 => nazwa, 2 => coś innego itd... Wymagana jest kolejność odpowiednia, ale wtedy URL wygląda jeszcze lepiej. Dzięki temu możesz stworzyć URL w stylu:

/galeria/pokaz/zdjecia_z_wakacji

Tak jak to ma miejsce na stronach php.pl.


--------------------
Go to the top of the page
+Quote Post
NorthPole
post
Post #6





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 20.02.2007
Skąd: Kraków

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


Cytat(dr_bonzo @ 4.06.2007, 12:45:54 ) *
nie piszesz slow jak 'kontroler', 'akcja' i masz
/galeria/pokaz/klucz_co/wartość_id-galerii/

Napisałem tak tylko dla jasności, oczywiście nie dodaję słów kontroler czy akcja winksmiley.jpg

Cytat(dr_bonzo @ 4.06.2007, 12:45:54 ) *
mozesz zamienic
/galeria/nazwa_galerii_galerii -> kotroler = galeria, akcja = pokaz, a po nazwie szukasz odpowiedniej galerii

No właśnie jak to zamienić? Dlaczego akcja to pokaz a nie "nazwa_galerii_galerii"?




Cytat(Ludvik @ 4.06.2007, 12:49:24 ) *
Możesz też się pozbyć tego "id" mapując kolejno elementy ścieżki na parametry. Musisz stworzyć tylko odpowiednią mapę do tego (bądź innego) schematu.

OK taki schemat skraca urla pomyślę nad tym, chociaż trochę boję się zachowania kolejności podczas generowania linków.
A co do mapy, jakie informacje w niej trzymacie. Ja mam:
id
title
keywords
description
parent - do tworzenia hierarchii, nawigacji
tpl - do zasysania odpowiedniego szablonu

Nie wiem czy nie mieszam tutaj kilku rzeczy, ewentualnie czy nie powinienem w takiej mapie trzymać jeszcze czegoś?


::EDIT::

dr_bonzo -> dziękuję!!!

zadanie odrobiłem i teraz wiem że namieszałem
ale mi głupio

Jeszcze raz dziękuję Wszystkim
Pozdrawiam

Ten post edytował NorthPole 4.06.2007, 23:37:57
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 09:12