Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> MVC - pytanie
Jazi
post
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 2
Dołączył: 25.08.2009
Skąd: Toruń / Bydgoszcz

Ostrzeżenie: (10%)
X----


Witam,
Tak sobie czytam teraz o projekcie MVC i nie bardzo go rozumiem... :/. Z tego co się dowiedziałem, to:
* Model. Jest to warstwa, która nie ulega zmianie. Zawiera ona wszelkie klasy i metody wykorzystywane w dwóch pozostałych warstwach (zarówno te, które pobierają dane z bazy danych, jak i je do niej wrzucają).
* View. Warstwa ta odpowiada za wypisywanie użytkownikowi kodu (zazwyczaj HTML), który zauważa na swoim ekranie.
* Controller. Ta część odpowiada za używanie klas z warstwy 'Model'. Przy pomocy danych pobieranych z $_POST lub $_GET określa jakich metod w danej chwili używać. Czyli w tej warstwie istnieje połączenie z bazą danych.

Jeżeli jakoś źle to opisałem, to proszę mnie poprawić.
Go to the top of the page
+Quote Post
amii
post
Post #2





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

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


View - ok
Model - to ogólnie logika biznesowa aplikacji tak jak mówisz zwiera klasy odpowiedzialne za komunikację z bazą danych (ale nie tylko!)
Controller - tak jak mówisz tylko bez tego połączenia z bazą danych to jest sprawa modelu.
Go to the top of the page
+Quote Post
Jazi
post
Post #3





Grupa: Zarejestrowani
Postów: 122
Pomógł: 2
Dołączył: 25.08.2009
Skąd: Toruń / Bydgoszcz

Ostrzeżenie: (10%)
X----


Cytat(amii @ 24.07.2011, 16:37:08 ) *
View - ok
Model - to ogólnie logika biznesowa aplikacji tak jak mówisz zwiera klasy odpowiedzialne za komunikację z bazą danych (ale nie tylko!)
Controller - tak jak mówisz tylko bez tego połączenia z bazą danych to jest sprawa modelu.

Czym jest "logika biznesowa aplikacji"?
Odnośnie "kontrolera" i połączenia z BD: przecież, żeby skorzystać z metody znajdującej się w modelu, która ma pobrać coś z BD, to kontroler musi mieć w tle włączone połączenie z bazą, nie? Czy może każde połączenie otwiera się tylko dla pojedynczej metody? Czyli każda metoda włącza swoje własne połączenie?
Go to the top of the page
+Quote Post
Spawnm
post
Post #4





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Robisz model do zarządzania db (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Jazi
post
Post #5





Grupa: Zarejestrowani
Postów: 122
Pomógł: 2
Dołączył: 25.08.2009
Skąd: Toruń / Bydgoszcz

Ostrzeżenie: (10%)
X----


Wybacz, ale nie rozumiem (IMG:style_emoticons/default/biggrin.gif) . Na jakiej zasadzie?
Go to the top of the page
+Quote Post
Spawnm
post
Post #6





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Na zasadzie że robisz model_db który nawiązuje połączenie z bazą dzięki np. silnikowi pdo oraz go przetrzymuje dostarczając zarazem dodatkowych funkcjonalności (IMG:style_emoticons/default/smile.gif)
Teraz model labo przekazujesz do kolejnych przez dependency injection albo tworzysz singleton lub registry do których odwołujesz się w poszczególnych modelach.
Najważniejsze abyś nie wsadzał danych bazy czy też zapytań sql do kontrolera, jest to logika którą ma zająć się model.
Go to the top of the page
+Quote Post
Jazi
post
Post #7





Grupa: Zarejestrowani
Postów: 122
Pomógł: 2
Dołączył: 25.08.2009
Skąd: Toruń / Bydgoszcz

Ostrzeżenie: (10%)
X----


Cytat(Spawnm @ 24.07.2011, 21:49:53 ) *
Na zasadzie że robisz model_db który nawiązuje połączenie z bazą dzięki np. silnikowi pdo oraz go przetrzymuje dostarczając zarazem dodatkowych funkcjonalności (IMG:style_emoticons/default/smile.gif)
Teraz model albo przekazujesz do kolejnych przez dependency injection albo tworzysz singleton lub registry do których odwołujesz się w poszczególnych modelach.

Czyli mam rozumieć, że modelów może być kilka? Czy można powiedzieć, że jeden model to jedna klasa? Kwestia łączenia się z bazą danych ma należeć do jednego modelu (który inicjalizujemy jako pierwszy) i on za pośrednictwem metod dependency injection, singleton oraz registry ma udostępniać dane o połączeniu z bazą danych do reszty modeli? Po wykonaniu się odpowiednich modeli, ten pierwszy zainicjalizowany model z bazą danych zamyka połączenie?
Następne moje pytanie, to jaka z wymienionych metod jest najlepsza?
Proszę także, aby ktoś mi wytłumaczył metody singleton oraz registry.
Go to the top of the page
+Quote Post
Spawnm
post
Post #8





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




singleton jest wzorcem projektowym, na phpedia.pl masz przykłady.
Co do dependency injection itd. to korzystaj z google.

Cytat
...ten pierwszy zainicjalizowany model z bazą danych zamyka połączenie?

Nie zamyka połączenia z bazą (IMG:style_emoticons/default/smile.gif)

Go to the top of the page
+Quote Post
Jazi
post
Post #9





Grupa: Zarejestrowani
Postów: 122
Pomógł: 2
Dołączył: 25.08.2009
Skąd: Toruń / Bydgoszcz

Ostrzeżenie: (10%)
X----


Cytat(Spawnm @ 24.07.2011, 23:28:45 ) *
singleton jest wzorcem projektowym, na phpedia.pl masz przykłady.
Co do dependency injection itd. to korzystaj z google.

A ten 'registry'?

Cytat(Spawnm @ 24.07.2011, 23:28:45 ) *
Nie zamyka połączenia z bazą (IMG:style_emoticons/default/smile.gif)

Jak to? To połączenie z bazą jest otwarte na cały czas generowania się strony www?
Go to the top of the page
+Quote Post
lukaskolista
post
Post #10





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


Polaczenie jest otwarte do momentu w ktorym je zamkniesz
Go to the top of the page
+Quote Post
Jazi
post
Post #11





Grupa: Zarejestrowani
Postów: 122
Pomógł: 2
Dołączył: 25.08.2009
Skąd: Toruń / Bydgoszcz

Ostrzeżenie: (10%)
X----


Cytat(lukaskolista @ 27.07.2011, 14:03:42 ) *
Polaczenie jest otwarte do momentu w ktorym je zamkniesz

To czemu Spawnm pisze, że nie zamyka połączenia. Chyba, że chodzi o to, że samo nie zamyka i ja je muszę zamknąć?
Go to the top of the page
+Quote Post

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: 19.09.2025 - 20:02