![]() |
![]() |
![]()
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,
Ostatnio napisalem (mam nadzieje) framework i z przyjemnoscia podziele sie moimi uwagami. 1. NAJWAZNIEJSZA ZASADA Jezeli piszesz framework dla siebie - pisz go tak, aby byl wygodny dla Ciebie. 2. MVC MVC mowi, ze masz miec model, widok i kontroler. Model nie wyswietla daych, widok nie grzebie w bazie. Kontroler umozliwia im jakas tam wspolprace. Nie podoba mi sie struktura katalogow. Tzn ja zmianilbym ja na nastepujaca: actions/ - kontrolery akcji models/ - modele views/ - widoki configurations/ - konfiguracje wszystkiego co zbudujesz na owym frameworku (np. akcji lub bibliotek, ktore bys mogl pozniej dodac.) konfiguracje mozesz zapisywac w plikach o przykladowych nazwach: DodajUzytkownikaAction.ini, UsunNewsaAction.ini, MojaBibliotekaJPEGLibrary.ini. Teraz nieco do kontrolera. Ktos powiedzial, ze jest malo elastyny. No w sumie trudno go zrobic innego, jak kolega dopiero zaczyna. Ja przyczepie sie do fragmentu nastepujacego:
Dlaczego ladujesz model? To nie nalezy do kontrolera. Ja wiem, ze moze byc tak wygodnie. Ale sa akcje w ktorych z niego nie skorzystasz. Przyklad? Akcja ktora wyswietla kominikat, jezeli nie znaleziono strony. Np masz akcje PokazZdjecia. Ktos wpisze adres: jakasStrona.pl/akcja=PokazFotografie. Jezeli kontroler nie znajdzie PokazFotografie to milo jest, jak odpalisz akcje np. NieZnaleziono. Ona wyswietli jedynie komunikat, zwroci Error 404 lub cos innego. Model nie jest tu najczesciej potrzebny. Zrob tak: 1. Sprawdz o jaka akcje uzytkownik prosi. np: strona.pl/akcja=PokazZdjecie. 2. Jezeli jest pusta (np. podano strona.pl/), to ustaw domyslna (np. StronaGlowna). 3. Jezeli nie jest pusta, pobiez ja i sprawdz czy istnieje. 4. Jezeli nie, przypisz akcji akcje NieZnaleziono. Sprawdz czy istnieje (tak dla spokoju) i jak nie ma akcji (usunales ja, albu dysk padl (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ), to zglos jakis blad. 5. Jezeli akcja istanieje - uruchom ja. Teraz akcja jezeli chce, prosi po model, ustawia sobie widok. Pobiera dane z modelu, przekazuje je widokowi. Widok moze wyswietlic, albo zwrocic kontrolerowi (w kontrolerze piszesz $oWidok = $oAkcja->uruchom()(IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Wtedy kontroler ja wyswietla albo robi co mu sie podoba (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Zeby nie bylo malo, zalaczam fragmenty mojego kodu:
Dam jeszcze przyklad jak to jest z modelem:
Mama nadzieje, ze troche pomoglem. Adrian. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 18:55 |