Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ilu z Was używa MVC?
konrados
post
Post #1





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


Witam,

Ostatnio okoliczności zmusiły mnie do korzystania z CodeIgnitera z jego wersją MVC.

I nawet sobie radzę, nie o to chodzi. Tylko tak ciekaw jestem ilu z Was używa MVC (w dowolnym frameworku lub bez) a ilu pozostaje przy "staroświeckim" stylu?

Edit: ojej, i gdzie moja sonda? Tak się starałem.
Możecie w takim razie odpowiedzieć tylko: używam/nie używam w odpowiedzi?

Ten post edytował konrados 2.06.2011, 18:50:08
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bastard13
post
Post #2





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


Cytat
No ja to najchętniej w ogóle bym się pozbył albo kontrolera albo modelu smile.gif Nazwałbym to wzorcem VS (View & Something)

Ok, rozumiem, że widzisz sens w posiadaniu widoku:)
Co do podziału na kontroler i model, to chodzi o to, że wyobraź sobie, że masz stronę z formularzem i jej logika wygląda tak:
1) Sprawdzasz czy zostały przesłane dane.
2) Dane zostały przesłane, więc walidujesz.
4) Przeszły walidację, więc zapisujesz do bazy.
5) Nie przeszły, więc zwracasz odpowiednie błędy dla pól
6) Tak, czy inaczej wyświetlasz komunikat.
7) Tak czy inaczej wyświetlasz formularz
8) Może wyświetlasz jeszcze jakiś tekst, który jest pobierany z bazy?
9) Może dane nt. uzytkownika, które są trzymane w sesji

I teraz implementacja z kontrolerem i modelami wygląda mniej więcej tak ($this = kontroler):
  1. if ($this->dataWasSent())
  2. {
  3. $validator = new Validtor();
  4. if($validator->isValid($this->getData()))
  5. {
  6. $dataModel = new DataModel();
  7. $dataModel->setData($this->getData());
  8. $dataModel->save();
  9. }
  10. else
  11. {
  12. $this->view->errors = $validator->getErrors();
  13. }
  14. }
  15.  
  16. $this->view->form = new Form($this->getData());

Jeszcze jak dorzucisz do tego bloki try-catch, bo np przy savie może wystąpić exception, to już ci się kod rozrasta.
Cała logika natomiast, czyli wygląd DataModel i zapisywanie, walidacja i cały jej proces, tworzenie formularza, przerzucasz na modele.

A teraz spróbuj to zrobić bez modeli:) Ile więcej kodu i o ile mniej przejrzysty?

O to chodzi w programowaniu obiektowym, żeby nie mieszać logiki obiektów, więc np model danych nie powinien posiadać walidatora i formularza do wyświetlenia, Form powinien tworzyć formularz i go wyświetlać i tyle. Żadnej dodatkowej funkcjonalności, która nie jest powiązana z logiką, bo później będziesz miał coś takiego, że zrobisz new Form() i okaże się, że została wykonana operacja pobierania danych z bazy, ich filtrowanie i walidacja. Czy to ma sens?

Cytat
Zbiór bibliotek to "jedynie" framework, który mniej lub bardziej może na jakimś wzorcu czy ideologii bazować.

Framework, to nie jest zbiór bibliotek. Zbiór bibliotek to po prostu większa biblioteka:) Framework jest narzędziem do wspierania tworzenia aplikacji i z założenia wymusza pewną architekturę, musi również posiadać jakieś jądro oraz dostarczać klasy (lub inną implementację) ustawiania środowiska frameworka.

Cytat
od niedawna przecież PHP weszło, żebym mógł powiedzieć"w szerszy świat obiektówki"

No trzeba się zgodzić, że w PHPie nadal nie ma wielu rzeczy, które by się przydały, ale uważam, że w PHPie nie da się programować w pełni obiektowo. Da się, tylko trzeba unikać pewnych możliwych rozwiązań i radzić sobie bez niektórych niezaimplementowanych:(

Ten post edytował bastard13 3.06.2011, 09:47:52
Go to the top of the page
+Quote Post

Posty w temacie
- konrados   Ilu z Was używa MVC?   2.06.2011, 18:45:58
- - 1010   używam   2.06.2011, 18:59:54
- - konrados   O, dziękuję za pierwszą odpowiedź, na razie 100% c...   2.06.2011, 19:02:20
- - pedro84   A jakie jest rozróżnienie na "staroświecki...   2.06.2011, 19:03:03
- - konrados   No staroświecki to ten bez MVC, znaczy budujemy so...   2.06.2011, 19:07:28
|- - pedro84   Cytat(konrados @ 2.06.2011, 20:07:28 ...   2.06.2011, 19:14:39
- - konrados   Nie no wiem co to jest programowanie obiektowe.......   2.06.2011, 19:19:03
- - pedro84   http://stackoverflow.com/questions/141912/...ives-...   2.06.2011, 19:30:57
- - konrados   I używasz któregoś z nich? No dobra, to zmieniam ...   2.06.2011, 19:39:01
- - erix   To w ogóle jest sens robienia wszystkiego bez MVC?...   2.06.2011, 19:40:07
- - konrados   No właśnie chcę się dowiedzieć jak to statystyczni...   2.06.2011, 19:42:12
- - bastard13   CytatNo bo tak na moją głowę, to MVC przydaje się ...   2.06.2011, 20:18:17
- - konrados   No to jak na razie wciąż 100% CytatDzięki temu,...   2.06.2011, 20:32:10
- - ixpack   Ja staram się od niedawna pisać wszystko zgodnie z...   2.06.2011, 20:36:45
- - bastard13   CytatNo ja to do tej pory robiłem tak, że w każdej...   2.06.2011, 21:17:16
- - konrados   No dobrze bastard13 Już jestem przekonany, właśni...   2.06.2011, 21:36:37
- - bastard13   Cytatwidok odwołujący się do modelu Np. jakiś Menu...   2.06.2011, 22:34:52
- - konrados   No ja to najchętniej w ogóle bym się pozbył albo k...   2.06.2011, 22:44:11
- - konole   W tej chwili Symfony2 tylko i wyłącznie do własnyc...   2.06.2011, 22:50:53
- - 1010   Tylko nie twórzmy kolejnego tematu o wyborze frame...   2.06.2011, 23:23:19
- - thek   Konrados... Kohana to też nie MVC. W wersji 2.x to...   3.06.2011, 00:06:02
- - Rid   CytatJa piszę zarówno nowe rzeczy w OOP, jak i dop...   3.06.2011, 00:19:27
- - thek   MVC to nie zbiór bibliotek. To sposób patrzenia na...   3.06.2011, 00:25:25
- - Rid   CytatMVC-W typowej aplikacji możemy wyróżnić zawsz...   3.06.2011, 00:43:50
- - thek   Owszem, ale MVC nie znaczy od razu, że musimy korz...   3.06.2011, 01:11:11
- - Rid   Ja piszę zarówno nowe rzeczy w OOP, jak i dopilnow...   3.06.2011, 01:29:38
- - bastard13   CytatNo ja to najchętniej w ogóle bym się pozbył a...   3.06.2011, 09:25:31
- - Zyx   CytatNo trzeba się zgodzić, że w PHPie nadal nie m...   3.06.2011, 12:39:33
- - rzymek01   apropo MVC: co sądzicie o przeniesieniu do Javascr...   3.06.2011, 12:59:10
- - bastard13   @up Zyx Cytatże w PHPie nie da się programować w p...   3.06.2011, 13:06:20
- - rzymek01   Cytatdobrze jest traktować to co po stronie klient...   3.06.2011, 13:54:54
- - bastard13   I chcesz całą stronę generować za pomocą js po str...   3.06.2011, 14:10:26
- - konrados   @bastard13 : jeszcze raz wielkie dzięki, dzięki To...   3.06.2011, 20:58:38
|- - konole   Cytat(konrados @ 3.06.2011, 19:58:38 ...   3.06.2011, 21:00:55
- - konrados   CytatŻe niby w czym ta trudność? No pierwszy link...   3.06.2011, 21:20:30
|- - konole   Cytat(konrados @ 3.06.2011, 21:20:30 ...   3.06.2011, 21:30:16
- - konrados   Oj, teraz widzę, że symfony nie ma czegoś takiego:...   3.06.2011, 21:56:45
|- - konole   Cytat(konrados @ 3.06.2011, 21:56:45 ...   4.06.2011, 06:42:07
- - pejott   Jeśli chcesz szybko i przyjemnie załapać OOP, to t...   4.06.2011, 06:48:52
- - bastard13   Nie miałem styczności z Symfony, więc się nie wypo...   4.06.2011, 07:27:59
- - konrados   CytatNie rozumiem pewnej rzeczy. Wybrałeś Kohanę i...   4.06.2011, 08:33:26
- - rzymek01   Cytat("bastard13")I chcesz całą stronę g...   4.06.2011, 09:18:20
- - bastard13   Cytatmodel otrzymuje dane, więc sprawdza poprawnoś...   4.06.2011, 17:39:57
- - rzymek01   dlatego zreflektowałem się zaraz po napisaniu tego...   4.06.2011, 18:18:40


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: 4.10.2025 - 11:49