![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 24.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Po intensywnej lekturze zabieram się za praktykę. Chciałbym stworzyć prostego bloga w OOP korzystając z wzorca MVC. I zastanawiam się, jak taką aplikację zaprojektować. Jak rozumiem muszę mieć klasę Router. Spotkałem się z dwoma odmianami - statyczną i normalną. W tym drugim wypadku wszystkie operacje wykonywane były w konstruktorze, w tym pierwszym np. w taki sposób: Roter::init(); Która jest lepsza? Router uruchamia kontroler i odpowiednie metody. I tutaj robi się problem. Otóż nie wiem, jak powinny wyglądać kontrolery. Jak rozumiem, powinienem stworzyć jeden kontroler, od którego pozostałe będą dziedziczyć. Ale co powinno zawierać się w takim kontrolerze? Jak rozplanować modele? Czy stworzyć jedną klasę model z różnymi metodami (wydaje się prostsze, ale pewnie ma wady - jakie?) Słyszałem, że zwykle jest jedna klasa widok. Czy to prawda? Czy w Internecie są dostępne warte uwagi implementacje wzorca MVC? Nie chodzi mi o banały, ale o taką w miarę porządną stronę. Aha, jeszcze plik konfiguracyjny. Czy może to być zwykły plik (np. ze stałymi) czy musi być klasa? Sorry, że tyle pytań, ale chcę mieć ogólne rozeznanie ![]() |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 4 Dołączył: 11.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Jest taki skrót z angielskiego... RT*M (gdzie ostatnia litera to Manual). Ale skoro już zadałeś to pytanie tzn. że albo nie wiesz gdzie szukać albo Ci się nie chce więc:
1. Kontroler zawiera w sobie "silnik" aplikacji - on przetwarza dane z modelu i przekazuje do widoku 2. Widok służy teoretycznie tylko do prezentacji (praktycznie i tak musisz weń wrzucić pehapa do przetwarzania jakiś foreachów) 3. Model to "źródło" w którym definiujesz dane i metody pobierania tych danych. http://learn.kohanaphp.com/2008/03/26/blog...comment-page-1/ -> tu masz jak napisać bloga w kohanie Oczywiście można samemu sobie napisać taki silnik... Ale po Twoim pytaniu myślę, że musisz się dowiedzieć co to MVC, a potem myśleć o własnej implementacji. No i nie ma czegoś takiego jak "powinien być jeden widok" - MVC to idea, a już implementacja to Twoja wyobraźnia - najczęściej spotyka się jeden widok "główny" (jako templatka strony) a inne widoki to tzw. podwidoki, które są umieszczane jako zmienna w widoku nadrzędnym. W gotowych silnikach MVC (jw.) masz już gotowe klasy Model, Controller i View i to z nich dziedziczysz swoje kontrolery/modele/widoki. Routing dzieje się automagicznie o ile masz apacza z mod rewritem. A jak to dokładnie działa ... RT*M ![]() Pozdr. Ten post edytował masahuku 6.03.2010, 19:48:29 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Na necie masz pelno artow a tak ogolnie w dziale PRO masz duzo info.
-------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 24.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Wiem co to jest MVC, do czego co służy, ale problem polega właśnie na implementacji. Ale chyba po prostu prześledzę jak to wygląda we Frameworkach.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 3 Dołączył: 5.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- Debian Etch, MySQL 5, PHP 5, Apache 2, Eclipse PDT
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 09:50 |