![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 8.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Od niedawna zaczalem interesowac sie MVC. Ale w dalszym ciagu nie wiem czy dobrze rozumuje istote MVC. Dlatego postanowilem napisac prosty (powtarzam, prosty, system) zeby sprawdzic czy ide w dobrym kierunku. Prosze o komentarze, jesli chodzi o sam schemat i istote wzorca MVC. Na poczatek przedstawie strukture katalogow: ./ - katalog glowny actions/ - katalog przechowujacy pliki .ini do wybranej akcji mozemy podac co ma zostac wykonane nastepnie configs/ - katalog z plikami konfiguracyjnymi - narazie nie uzyty controllers/ - katalog z kontrolerami - narazie tylko kontroler glowny models/ - katalog z plikami modeli views/ - katalog z plikami widokow index.php - plik glowny ktory uruchamia kontroler Zaczynamy od poczatku - kod kontrolera:
Zakladamy, ze uzytkownik wpisal: index.php?view=Users&action=addUser&userName=root kontroler laduje wiec model UsersMod:
i wykonuje w nim akcje zmianu danych, a poniewaz akcja addUser() posiada plik konfiguracjny z wywolaniem jako kolejnej akcji countUsers wywoluje kolejna akcje. No i pozostaje wyswietlenie widoku Users:
Co sadzicie o tym? Czy dobrze rozumuje istote MVC? Zapraszam do dyskusji... |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 338 Pomógł: 2 Dołączył: 4.03.2006 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Nie podoba mi sie u Ciebie organizacja MVC. Po pierwsze: strona.pl?model=Cos - zgloszenie moze zawierac jedynie akcje i parametry. Uruchamiana jest akcja. Akcja wie jakiego widoku uzyje i jakiego modelu uzyje. Po drugie: nie kazda akcja potrzebuje modelu. Nawet polowa akcji nie wymaga modelu. Zobacz np. akcje DodajNowosc. Zadne dane nie pobierana sa z bazy (w naszym przykladzie). Akcja uzywa tylko widoku. Bywa tak, ze akcja uzywa tylko modelu, widoku zas nie. Np: ZapiszUzytkownika. Ko9lejna sprawa to uzywane kilku modeli w akcji. Zerknij:
Nie mozesz wiec automatycznie ladowac widoku i modelu do akcji. Zrob klase bazowa dla akcji np. Action. Kazda klasa akcji z niej dziedziczy. Action posiada uzyteczne metody getModel($sModel), getView($sView). Kiedy potrzebujesz modelu/widoku po prostu piszesz w swojej akcji:
Co z walidacja? Zajgorsza czesc aplikacji. Zawsze zajmuje najwiecej czasu i zawsze jest nudna (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Nie zastanawialem sie jak zrobie to w nowymn frameworku, ale poprzednio mmialem cos w stylu:
Pozdrawiam, Adrian. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 16:27 |