Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> MVC raz jeszcze.
krzywy36
post
Post #1





Grupa: Zarejestrowani
Postów: 370
Pomógł: 43
Dołączył: 1.12.2007
Skąd: Kędzierzyn Koźle

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


Wiem, że jest masa tematów na forum o tematyce MVC ale chyba w żadnym nie ma zawartych wszystkich zasad/odpowiedzi.
Zabrałem się ostatnio za OOP i chciałem napisać coś większego, przy okazji sprawdzając wiedzę, ale stwierdziłem, że trzeba oprzeć to na jakimś ogólnym wzorcu - jak tworzyć podstrony, struktury katalogów itp. i wtedy zacząłem interesować się MVC, tak więc:

Struktura katalogów:
Kod
|core/
|controllers/
|models/
|views/
|classes/
|web/
|index.php


Po kolei:
W core znajdują się klasy: router, db, controller, model, view itp.
w controllers znajdują się klasy kontrolerów, dziedziczące po klasie controller (abstrakcyjna klasa controller to ogólny zarys kontrolera)
models to samo, czyli dziedziczace po klasie model
views - widoki wybierane w zaleznosci od akcji
classes - inne klasy, narazie nic tam nie ma,
web - skrypty js, style itp.
index.php - dołącza odpowiednie pliki i "zaczyna akcje"

?url = nazwaKontrolera/ akcja/ param1/ param2/ paramN...

Router parsuje url i się zaczynają problemy:
1. sam powinienem tworzyć obiekt kontrolera czy jakaś metoda routera (czy moze jeszcze innej klasy?) powinna to robić?
2. gdzie trzymać obiekt controllera? po prostu w zmiennej, czy moze w obiekcie innej klasy* za to odpowiedzialnej, jeśli to drugie to jak powinna działać ta klasa?
3. zakładając, że mam już utworzony obiekt kontrolera, wywołuje jakaś jego metode (akcja) - teraz jest tworzony obiekt widoku? jeśli tak to gdzie go trzymać, w kontrolerze, czy w obiekcie innej klasy*?
4. chcąc być zgodnym z koncepcją MVC, to widok powinien poprzez model pobierac dane, więc obiekt modelu powinien być tworzony i trzymany w widoku czy może wcześniej w kontrolerze?
5. potem widok wyświetla dane blablabla... hmm, to co tak właściwie robi kontroler? bo idąc moim tokiem myślenia (który jest prawdopodobnie błędny) tylko, tworzy i przechowuje widok?

*inna klasa - rejestr?

Próbowałem coś pisać ale się pogubiłem, więc zwracam się do was o pomoc, móglby ktoś napisać klarowne odpowiedzi na moje pytania? Ewentualnie opisać co konkretnie powinien robić kontroler, model, widok i jakie są zależności pomiędzy nimi (co do czego powinno mieć dostęp, co może modyfikować co itp.)

Wszystkie sugestie/rady/krytyka na temat czegokolwiek co tu napisałem - mile widziane (IMG:style_emoticons/default/snitch.gif)

Ten post edytował krzywy36 4.07.2010, 01:08:07
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 14:06