Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mvc] znowu ogolnie o mvc, teoria a praktyka np w mojavi
Leezard
post
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 19.09.2004
Skąd: Uć

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


witam ponownie

Zapoznaje sie ostatnio z Mojavi 2 jako polecanym na forum frameworkiem i w zwiazku z tym mam pare pytan, ale nie koniecznie dotyczacych Mojavi, ale tematu MVC ogolnie
Z tego co zauwazylem Mojavi 2 nie ma czegos takiego jak Modele, tzn trzeba je twrzyc samemu jako osobne klasy i wlaczac osobno, nie ma dziedizczenia z klasy model i metod ktore trza przeciazac. Wiec jesli napisze sobie klase UserModel np tak:

Kod
class UserModel
{
function UserModel(&$db)
{
...
}
function getUserById($id)
{
...
}
function getUsersList()
{
...
}
function modifyUser($user)
{
...
}
function delUser($id)
{
...
}
function addUser($user)
{
...
}
}


to czy to jest teoretycznie poprawna klasa modelu uzytkownika, jesli przyjmuje w konstruktorze jako parametr idetyfikator polaczenia z baza, czy moze polaczenie powinno byc realizowane wewnatrz klasy? Z drugiej strony jednak na forum mojavi spotkalem opinie ze ludzi tworza wlasne filtry ADOdb tworzace im polaczenia przed wykonaniem akcji, czyli w takim przypadku przekazanie polaczenia do konstruktora jest jedyna mozliwoscia, ale nie wiem czy nie lamie to zasady ze interfejs modelu powinien byc niezalezny od zrodla danych, bo jesli bedziemy mieli pliki xml to nie potrzebne bedzie nam polaczenie z baza.

Poza tym mojavi jest tak skonstruowane ze wszytstko musi miec jakas akcje, niezaleznie od tego czy modyfikuje zawartosc zrodla danych czy nie, czyli kazdy widok przechodzi przez jakas akcje. Wiec tera moje pytanie (np co do UserModel), czy w zwiazku z tym poprawne bedzie uzywanie modelu w akcji do zmian w zrodle danych, i uzywanie modelu w widoku do wyciagniecia danych? Czy moze calosc zwiazana z modelem powinienem umiescic w akcji, a dane wyciagniete z modelu przesylac do widoku z uzyciem Requesta?

Prosilbym o jakies wyjasnienia, poniewaz nie wiem jak sie za to zabrac (chociaz obydwie metody podane przeze mnie z pewnoscia beda dzialac), a nie chcialbym zeby potem sie okazalo ze musze calosc modyfikowac, bo zrobilem zle i potem bedzie to w czyms prezszkadzac.


--------------------
Nie rób nic na siłę - weź większy młotek ;)
Go to the top of the page
+Quote Post
aleksander
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

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


powinno być wewnątrz, ponieważ akcja nic nie wie o bazie danych. Ona wie tylko o modelu, a co się dzieje wewnątrz modelu ją już nie obchodzi.

AD2: poprawne smile.gif w modelu masz metody editUser czyli dla akcji logiki, a także getUserById czyli dla akcji widoku.
Go to the top of the page
+Quote Post
Leezard
post
Post #3





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 19.09.2004
Skąd: Uć

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


dzieki, aleksander

i wlasnie o to mi chodzilo winksmiley.jpg


--------------------
Nie rób nic na siłę - weź większy młotek ;)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 01:13