Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MVC] Schemat połączeń modułu Blog
Forum PHP.pl > Forum > PHP > Object-oriented programming
starach
Witam.
Mimo iż jestem w połowie pisania w/w modułu to przyłapałem się na tworzeniu kontrolero-widoku więc postanowiłem to trochę rozrysować.
Zwracam się do was z pytanie czy jest to dobrze rozplanowane oraz czy zależności między klasami są poprawne.

Przyjąłem że rozrysuję zachowanie klasy dla wyświetlania listy wpisów bloga


Klasa Blog pełni funkcję kontrolera głównego. Rozpoznaje akcje i wykonuje odpowiednie czynności.
Po rozpoznaniu akcji wysyłane jest żądanie do SubKontrolera w klasie BlogEntries który to pobiera dane za pomocą metody x,
pakuje je w obiekt klasy BlogEntry po czym używając SubKontrolera klasy BlogCategories pobiera kategorie,
które są już zwracane jako tablica obiektów BlogCategory na koniec łączy wszystko z szablonem przy użyciu metody y
i zwraca klasie Blog gotową listę wpisów.

1) Wiem że rysunek jest kiepski i wiem że nie ma on nic wspólnego z UML'em
2) Trochę to zagmatwane, jednak wydaje mi się że patrząc na rysunek można tok mojego rozumowania pojąć.

Proszę o opinie i konstruktywną krytykę.
Pozdrawiam.

edit>
Myślałem jeszcze nad wywoływanie pobierania kategorii przez widok bo w końcu nie jest powiedziane że zawsze widok będzie wyświetlał listę kategorii,
ale mam wrażenie że jest to kolejny przypadek robienia kontrolero-widoku o którym wspomniałem na początku.
edit>
Dodałem tag do tytułu
edit>
Poprawiłem trochę treść bo się lekko zamotałem pisząc opis czynności
Strzałek
Jak bardzo dziwnie zamotałeś to wszystko. W aplikacji powinieneś mieć jakiś główny kontroler (FrontController). On korzystając z różnych innych ciekawych rzeczy wie że chcesz odpalić Akcję Entries modułu Blog. Akcja entries ma jakieś widok (może mieć ich kilka). I teraz: w widoku odbywa logika odpowiedzalna za prezentacje danych np.: pobranie wpisów etc. W akcji natomiast dzieją sie takie rzeczy jak zapisywanie wpisó etc.
starach
Zdrzemnąłem się godzinkę i po przeczytaniu twojego posta doszedłem do wniosku,
że chcę zrobić kwadratowe koło po to żeby zachować zasadę obiektowości.

Wywołanie metod przed drzemką:
Blog: BlogEntries::zrobWidok()
BlogEntries: this::pobierzWpisy()
BlogEntries: this::zapakujWpisyDoKlasy BlogEntry
BlogEntries: BlogCategories::pobierzKategorie() x razy dla każdego wpisu
BlogCategories: this::zapakujWpisyDoKlasy BlogCategory
BlogEntries: this::stworzWidok()
BlogEntries: zwróć całość do blog

Wywołanie metod po drzemce:
Blog: BlogEntries::pobierzWpisy() - Zwróć je jako tablicę obiektów
Blog: BlogCategories::pobierzKategorie() - Zwróć je jako tablicę obiektów
Blog: this::stworzWidok()

Dobrze jest sobie pospać od czasu do czasu...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.