Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]MVC i struktura aplikacji
MadHatter
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 1
Dołączył: 15.02.2007

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


Hej,

Mam takie pytanie, starm sie napisac strone stosujac wzorzec MVC, stosuje przy tm Smarty i Peara ale to nie wazne. Glowny problem dla mnie tkwi w teorii samego rozwiazania. Otoz jesli chodzi o sterowanie kacja to jest niby wszystko dosc proste ale nie wiem czy zalozenie dobrze rozumiem. Wysiwetlenie strony polega na tym ze zmianie ulega tytul, dane ktore pojawiaja sie w dziale content, tlo strony i boczne menu. Nie wiem wiec czy stosowac i pisac osobne akcje dla kolejnych odslon, czy napisac jedna mmetode klasy Controllera, pobierajaca odpowiednie parametry. Nie chce tutaj podawac kodu, ktory juz napisalem, bo jest go dosc sporo, ale powiem tylko ze obecnie lacze klasy modelu, akcji i widoku z instrukcja switch-case w indexie i wlasnie nie wiem czy teoretycznie jest to zgodne z zalozeniami MVC. Dodam ze nie zalezy mi narazie na optymalizacji skryptu a raczej na zglebieniu samej teorii.

Dzieki i pozdrawiam.

Ten post edytował MadHatter 24.06.2007, 02:03:50
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Strzałek
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 384
Pomógł: 6
Dołączył: 11.09.2004
Skąd: Grodzisk Mazowiecki

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


Wzorce to nie są sztywne założenia że musi być tak i koniec. Są to ... wzorce. Każdy może implementować je inaczej i właśnie to jest w tym najfajniesze.

Więc weźmy na warsztat MVC. Wzorzec mówi nam o tym że aplikacja dzieli się na trzy warstwy - Model, Widok i Kontroler. Oddzielenie tych warstw od siebie daje nam dużą wygodę, by z biegiem czasu odkrywać kolejne plusy tego rozwiązania. A jak to zaprogramujesz? To już zależy od Ciebie. Ja kiedyś rozwiązałem to bardzo prosto, działało szybko i prosto. Mianowicie aplikacja składała się z 3 folderów, Controller, Model i View.

W Controller było np. NewsController, z metodami showAll(), showOne(), archive().

Model przechowywał modele - NewsContainer, z metodami getAllNews, getById().

Natomiast w View były zwykłe szablony php.

Potraktowałem to bardzo luźno i uważam że tak powinno się traktować wzorce.
Dlatego zrób jak uważasz. Jak Ci jest wygodnie. Oczywiście pamiętaj by oddzielić 3 warstwy od siebie, jednak nie rób czegoś na siłę - np. tego że muszą być akcje czy coś tam jeszcze ciekawego.

Możesz ewentualnie podpatrzeć rozwiązania jakie są zastosowane w frameworkach np. agavi.

Pozdrawiam.
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: 16.10.2025 - 14:00