Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> MVC - pytanie
Jazi
post 24.07.2011, 15:32:13
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 24.07.2011, 15:37:08
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.


--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
Go to the top of the page
+Quote Post
Jazi
post 24.07.2011, 15:48:02
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 24.07.2011, 16:09:31
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 smile.gif
Go to the top of the page
+Quote Post
Jazi
post 24.07.2011, 20:18:22
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 biggrin.gif. Na jakiej zasadzie?
Go to the top of the page
+Quote Post
Spawnm
post 24.07.2011, 20:49:53
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 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 24.07.2011, 21:56:15
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 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 24.07.2011, 22:28:45
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ą smile.gif

Go to the top of the page
+Quote Post
Jazi
post 27.07.2011, 12:50:32
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ą 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 27.07.2011, 13:03:42
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 28.07.2011, 19:22:54
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 08:22