![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 10.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
W ksiazce "PHP5 i MySQL Zastosowania e-commerce" Helionu jest opis budowy sklepu na zasadzie architektury trojwarstwowej tj. warstwy prezentacji, warstwy biznesowej i warstwy danych. I tak sie zastanawiam czy to jest to samo co MVC
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) ![]() ![]() |
Mnie sie wydaje ze tak - w koncu MVC to tez 3 warstwy - wlasnie takie jakie napisales.
-------------------- Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
zwał jak zwał, zależy o co chodzi dokładniej, nie mówiąc juz o tym ze jelsi chodzi o MVC to niemal kazdy ma swoj punkt widzenia, interpretacje i implementacje
-------------------- "If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org |
|
|
![]()
Post
#4
|
|
Administrator PHPedia.pl Grupa: Developerzy Postów: 1 102 Pomógł: 2 Dołączył: 14.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Przetłumacz sobie skrót MVC i zobaczysz
![]() I przeczytaj artykuł hawka na wortalu. -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 28 Dołączył: 4.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
w MVC, to warstwę prezentacyjną masz na pewno, ale nie czytałem książki, o której wspomniałeś, więc nie wiem co jej autor miał na myśli.
Np. "warstwa danych". w MVC nie ma czegoś takiego jak "warstwa danych". Jest Model - sposób pobierania danych i controller - modyfikacja danych. ![]() -------------------- Sygnatura niezgodna z regulaminem.
|
|
|
![]()
Post
#6
|
|
Administrator PHPedia.pl Grupa: Developerzy Postów: 1 102 Pomógł: 2 Dołączył: 14.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Przecież model to warstwa danych.
-------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 28 Dołączył: 4.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
Z tego co wiem, model nie ingeruje w modyfikację danych
![]() PS. Tak czy inaczej, nie wiem, czy jest większy sens się nad tym rozwodzić... pozdrawiam. -------------------- Sygnatura niezgodna z regulaminem.
|
|
|
![]()
Post
#8
|
|
Administrator PHPedia.pl Grupa: Developerzy Postów: 1 102 Pomógł: 2 Dołączył: 14.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Miałem na myśli pobieranie, łączenie się z bazą. Nie chwytaj mnie za słówka.
Model udostępnia jakieś API z pomocą którego niezależnie od tego gdzie dane się znajdują np. w bazie, pliku zawsze otrzymamy tak samo je. -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 22.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Na wstępie chciałbym się przywitać. Jestem Nowy ; )
Cytat ...nie mówiąc już o tym ze jeśli chodzi o MVC to niemal każdy ma swój punkt widzenia, interpretacje i implementacje To prawda, wzorzec architektury aplikacji MVC należy do bardzo kontrowersyjnych wzorców. Szczególnie jeśli przychodzi do jego implementacji w środowisku www (PoEAA) i szczegółów zastosowań oraz rozdzielenia zadań między poszczególne komponenty. Wynika to zapewne z tego, że nie jest to prosty wzorzec dający propozycje gotowych interfejsów klas, a pewne podejście programistyczne w budowaniu struktury aplikacji z szczególnym uwzględnieniem separacji podstawowych i różnych zadań zupełnie jak w architekturze wielowarstwowej. A także jego pierwotne przeznaczenie dla interfejsów GUI, które znacznie różnią się od aplikacji internetowych. Cytat ...nie wiem, czy jest większy sens się nad tym rozwodzić... ...ależ oczywiście że jest. O ile jest wiele propozycji implementacji wzorca MVC i sporów co do szczegółów zastosowania w aplikacjach webowych to sama idea wzorca jest bardzo przejrzysta i atrakcyjna. http://www.phpwact.org/pattern/model_view_controller June 2003 - php Architekt - Industrial Strength MVC http://www.phppatterns.com/docs/design/mvc_pattern_version_2 Napewno było na ten temat wiele dyskusji, ale pozwolicie, że spróbuję jeszcze raz zebrać podstawowe informacje... Wytyczne wzorca projektowego MVC mówią o podziale aplikacji lub jej fragmentu na trzy części: model, widok i kontroler. Funkcje poszczególnych elementów oraz przepływ danych wywodzi się z aplikacji z graficznymi interfejsami GUI, gdzie można wyróżnić proces wprowadzania danych, przetwarzania ich i prezentowania. Za każdą z tych funkcji odpowiada odpowiednia część wzorca. Model zawiera w sobie kluczowy element aplikacji, logikę biznesową. Głównym celem wzorca MVC jest uniezależnienie modelu od widoku i kontrolera, które razem tworzą interfejs aplikacji. Ponieważ model powinien pozostać niezależny od prezentacji, nie może odnosić się ani do widoku ani kontrolera. W warunkach sieci web wzorzec MVC korzysta z pasywnych obiektów modeli, które są w pełni odseparowane od pozostałych komponentów, a operacje na nich i pobieranie danych wykonywane są przez kontroler i widok. Model jest odpowiedzialny za zachowanie i przetwarzanie danych, odpowiada na zapytania o jego stan oraz reaguje na polecenia zmiany stanu. Odpowiada za dostęp do danych i nie decyduje o sposobie ich prezentacji, za którą odpowiedzialne są powiązane z nim widoki Widok pobiera dane z modelu i prezentuje je użytkownikowi, tworząc tym samym warstwę prezentacji aplikacji. Widok charakteryzuje się swobodnym dostępem do modelu, ale nie ma możliwości wpływać na jego stan. Może tylko odczytywać i reprezentować konkretny stan modelu. Odczyt danych z modelu odbywa się za pośrednictwem odpowiednich metod modelu. Kontroler odbiera i tłumaczy dane wejściowe na odpowiednie zapytania do modelu lub widoku. W zależności od żądań jakie przychodzą z poza aplikacji (w przypadku programów z interfejsem www są to zapytania GET i POST) wywołuje odpowiednie akcje. Kontroler jest odpowiedzialny za wywoływanie odpowiednich metod na modelu, które wpływają na jego stan. Następnie, w przypadku modeli pasywnych, informuje on widok o zmianie stanu modelu. W przypadku wzorca MVC kontroler nie jest, jak się często mylnie sądzi, rodzajem mediatora pomiędzy widokiem a modelem. Zarówno kontroler jak i widok mają takie same możliwości pobierania danych z modelu. Kontroler nie przekazuje danych z modelu do widoku. Idąc za przemyśleniami autora „php|architect's Guide to php Design Patterns” Jason E. Sweat to czym naprawdę różnią się wszystkie implementacje wzorca MVC w świecie php to właśnie sposób rozwiązania działania Kontrolera. Jeśli chodzi o komponent widoku większość frameworków opiera go na własnym lub jednym z powszechnie znanych systemów szablonów implementującym wzorzec Template View. Stosunkowo prosta sprawa jest też w przypadku Modelu. php doczekało się już kilku popularnych implementacji Wzorców DAO czy bardziej skomplikowanych frameworków ORM. Wracając do porównania architektury wielowarstwowej i wzorca MVC http://www.tonymarston.net/php-mysql/infra...-faq.html#faq26 Cel w postaci odseparowania fragmentów kodu odpowiedzialnych za prezentację, logikę biznesową oraz dostęp i gromadzenie danych, jest wspólny zarówno dla architektur wielowarstwowych jak i dla wzorca MVC. Dlatego też istnieje możliwość przeplatania się tych dwóch podejść i wykorzystywania ich równolegle wykorzystując tym samym korzyści płynące z obydwu rozwiązań. Na tym etapie możemy mówić o podobieństwie tych dwóch podejść. Podstawowe różnice architektur sprowadzają się do tego, iż w MVC model odpowiedzialny jest za dostęp i zachowanie się danych, co może odpowiadać warstwom logiki biznesowej i dostępu do danych w modelu trójwarstwowym. Warstwa prezentacji w modelu warstwowym odpowiada za komunikacje z użytkownikiem (zarówno pobieranie danych wejściowych jak i prezentowanie danych wyjściowych), w modelu MVC rolę tą spełniają widok i kontroler To tyle moich rozważań Z poważaniem, kf |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) ![]() ![]() |
[OT]
Jak nazwa forum wskazuje to forum nie sluzy do pisania offtopicowych klotni i postow http://forum.php.pl/index.php?showtopic=937 Dziwne posty usuwam i prosze nie pisac wiecej takowych. [/OT] -------------------- Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
|
|
|
![]()
Post
#11
|
|
![]() Developer Grupa: Moderatorzy Postów: 2 844 Pomógł: 20 Dołączył: 25.11.2003 Skąd: Olkusz ![]() |
Cytat MVC błędnie jest mylone z innymi wzorcami, które mają na celu odseparowanie interfejsu użytkownika od warstwy logicznej, takim jak na przykład „Presentation Abstraction Control”.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 03:42 |