![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 2 Dołączył: 25.08.2009 Skąd: Toruń / Bydgoszcz Ostrzeżenie: (10%) ![]() ![]() |
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ć. |
|
|
![]()
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. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 2 Dołączył: 25.08.2009 Skąd: Toruń / Bydgoszcz Ostrzeżenie: (10%) ![]() ![]() |
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? |
|
|
![]()
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
![]() |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 2 Dołączył: 25.08.2009 Skąd: Toruń / Bydgoszcz Ostrzeżenie: (10%) ![]() ![]() |
Wybacz, ale nie rozumiem
![]() |
|
|
![]()
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
![]() 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. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 2 Dołączył: 25.08.2009 Skąd: Toruń / Bydgoszcz Ostrzeżenie: (10%) ![]() ![]() |
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 ![]() 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. |
|
|
![]()
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ą ![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 2 Dołączył: 25.08.2009 Skąd: Toruń / Bydgoszcz Ostrzeżenie: (10%) ![]() ![]() |
singleton jest wzorcem projektowym, na phpedia.pl masz przykłady. Co do dependency injection itd. to korzystaj z google. A ten 'registry'? Nie zamyka połączenia z bazą ![]() Jak to? To połączenie z bazą jest otwarte na cały czas generowania się strony www? |
|
|
![]()
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
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 2 Dołączył: 25.08.2009 Skąd: Toruń / Bydgoszcz Ostrzeżenie: (10%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 08:22 |