Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> MVC oraz Kreator stron i newsów.
KotWButach
post 22.07.2013, 01:43:46
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 10
Dołączył: 8.02.2012

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


Witam
Mam przynajmniej dla mnie bardzo niejasny problem. Otóż pisze sobie pewną aplikacje której właściwie do CMS-a niewiele brakuje więc powiedzmy że pisze CMS-a dla uproszczenia.
URL
domena.pl/strona
gdzie strona to kontroler we wzorcu MVC. Czyli standardowo.

Pojawił się problem którego nie wiem jak rozwiązać. Otóż większość CMS-ów posiada dynamiczne tworzenie stron start, kontakt, o firmie itd. Moje pytanie więc jest czy mam stworzyć kreator stron oparty na plikach czyli kontroler gdzie automatycznie bedzie dodawał się cały plik? Czy można to rozwiązać jakoś inaczej przy pomocy bazy danych ale nie wiem właśnie jak skoro url odpowiada kontrolerowi. sad.gif.

Będę wdzięczny za waszą pomoc smile.gif w zrozumieniu problemu.

Ten post edytował KotWButach 22.07.2013, 01:44:53
Go to the top of the page
+Quote Post
destroyerr
post 22.07.2013, 17:24:04
Post #2





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

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


Cytat
URL
domena.pl/strona
gdzie strona to kontroler we wzorcu MVC. Czyli standardowo.

Chyba stąd bierze się Twój problem. To nie ma związku z MVC. Faktycznie jest to jakiś nieformalny standard frameworków, ale nie dotyczy on samego MVC. Nazywa się to routing i nie koniecznie musi być to w formie podanej przez Ciebie (/strona => kontroler Strona). Wiele implementacji routingu pozwala na dowolne wzorce razem z elementami zmiennymi w tych wzorcach. Przykładowy wzorzec: /strona-statyczna/{title}, prowadzi do akcji StaticController::page($titlePage). Pasują do niego urle: /statyczna-strona/start, /statyczna-strona/kontakt, /statyczna-strona/o-firmie. Zadaniem kontrolera jest odebranie parametrów a urla i na ich podstawie pobranie odpowiedniego modelu (w Twoim przypadku będzie to strona).

Skorzystanie z frameworka powinno Ci pomóc w zrozumieniu tej kwestii, a pewni innych też.
Go to the top of the page
+Quote Post
KotWButach
post 31.07.2013, 15:58:07
Post #3





Grupa: Zarejestrowani
Postów: 361
Pomógł: 10
Dołączył: 8.02.2012

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


Witam Cię dziękuje że odpisałeś. Staram się to pojąć właśnie, nie miałbyś może jakiś źródeł mogą być anglojęzyczne na temat różnych metod które opisałeś?
Go to the top of the page
+Quote Post
destroyerr
post 1.08.2013, 07:23:18
Post #4





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

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


Ciężko mi cokolwiek polecać, zwłaszcza w temacie routingu. Pozostaje Ci google, albo jeszcze lepiej jak już napisałem frameworki i biblioteki. Czytanie ich dokumentacji i źródeł to moim zdaniem dobry pomysł. Nie musisz ograniczać się tylko do php.
Go to the top of the page
+Quote Post
pmfs
post 1.08.2013, 12:24:59
Post #5





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 1.08.2013

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


Podłącze się pod temat, bo sam założyłem podobny, ale może nie tak dobrze opisałem o co mi chodzi.

Moje pytanie o routing:
  1. /** Routing Info **/
  2. $FrontController = Zend_Controller_Front::getInstance();
  3. $Router = $FrontController->getRouter();
  4.  
  5. $route = new Zend_Controller_Router_Route(
  6. ':page',
  7. 'controller' => 'index',
  8. 'action' => 'view',
  9. 'page' => 1
  10. )
  11. );

Czyli wpisuje url:
strona.pl/4

I chciałbym tą liczbę przekazać do kontrolera, jak to zrobić?
Go to the top of the page
+Quote Post
KotWButach
post 3.08.2013, 00:05:04
Post #6





Grupa: Zarejestrowani
Postów: 361
Pomógł: 10
Dołączył: 8.02.2012

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


Chyba trudny temat poruszyłem albo prosty?
Go to the top of the page
+Quote Post
Daiquiri
post 3.08.2013, 06:46:35
Post #7





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Cytat(KotWButach @ 3.08.2013, 01:05:04 ) *
Chyba trudny temat poruszyłem albo prosty?
Jeżeli dobrze widzę to szukasz routing regex. Na potrzeby zrozumienia możesz nawet zerknąć na takie cudo, chociaż pod podanym hasłem powinieneś znaleźć sporo bezpośrednich opisów i przykładów smile.gif.

Możesz też sięgnąć do książki, np. Pro PHP MVC, C.Pitt jest tam trochę o podstawach routingu.
Go to the top of the page
+Quote Post
destroyerr
post 3.08.2013, 07:17:57
Post #8





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

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


Cytat
Chyba trudny temat poruszyłem albo prosty?

Temat prościutki, tylko nikt za Ciebie tego nie przerobi. Przecież jeżeli wpiszesz sobie w wyszukiwarce php routing, to dostaniesz mnóstwo wyników.
Go to the top of the page
+Quote Post
KotWButach
post 3.08.2013, 13:50:47
Post #9





Grupa: Zarejestrowani
Postów: 361
Pomógł: 10
Dołączył: 8.02.2012

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


No tak ale nie tylko routing mi potrzebny nie mogę po prostu załapać koncepcji innego rozumowania niż (page == controller). Chodzi o to że jak system powinien rozpoznawać czy to co widzi to strona oraz z czym np statyczna, aktualności, galeria a może wszystko na raz. Jak to rozwiązać? Mamy sobie wordpress bleee ale mamy i tam można utworzyć aktualności, strony statyczne, galerię itd i nie łapie jak to się ma samo dziać biggrin.gif przy założeniu że (page != controller)
Go to the top of the page
+Quote Post
aniolekx
post 13.09.2013, 08:26:06
Post #10





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

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


albo dla każdej strony stworzysz oddzielny kontroler który będzie wczytywał odpowiedni widok, albo zaimplementujesz kreator stron, w którym będziesz te strony definiował.
Ale bez stworzenia wizualnego kreatora, gdzie za pomocą klikania można definiować takie strony i trzymać te informacje w bazie i wydaje mi się to rozwiązanie bezsensowne.

Wiec pozostaje stworzenie kontrolera/widoków dla każdej z tych podstron.

Dla przykładu strona kontakt ma najczęściej formularz kontaktowy który musisz obsłużyć. Wiec w kontrolerze będziesz musiał mieć więcej akcji dla tej strony.

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 Wersja Lo-Fi Aktualny czas: 16.04.2024 - 13:31