Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MVC] Czy dobrze interpretuję ?, ciągle to mvc :(
matix
post
Post #1





Grupa: Zarejestrowani
Postów: 278
Pomógł: 10
Dołączył: 13.02.2007
Skąd: Rybnik

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


Witam,

Ciągle zastanawiam się, czy dobrze interpretuję zasadę MVC.

Chciałem napisać coś takiego:

KONTROLLER: Index.Controller.php:

Pobiera $_GET['view'] i zwraca $this -> setView():

  1. <?
  2. class aController 
  3. {
  4. private $sView;
  5.  
  6. function __construct() 
  7. {
  8. $this -> sView = $_GET['view'];
  9. self::setView();
  10. }
  11.  
  12.  
  13. function setView()
  14. {
  15. require_once('view/'.$sView);
  16. }
  17. }
  18. ?>


Następnie MODEL pobiera dane z mysql z danego projektu i zwraca:


  1. <?
  2. class db 
  3. {
  4. function __get() {
  5. while (...) 
  6. {
  7. $oArray[] = $db -> id;
  8. }
  9.  
  10. return $oArray;
  11. }
  12.  
  13. }
  14. ?>


W ostateczności Widok pobiera wszystko i generuje HTML:

  1. Klient o ID: <?=$db['id'];?><br/>
  2. Pobrał .... <?=$db['nazwa'];?>
  3.  
  4. To jest przykładowa tresc pliku widoku.



Męczy mnie także pytanie, jak to wszystko połączyć, zeby działało?
Chodzi o większą ilość widoków, lub modeli.

Proszę mnie nie odsyłać do artykułów, bo z nich nic się (niestety) nie można dowiedzieć.

Pozdrawiam, Matix: )

Ten post edytował matix 25.05.2007, 22:03:54
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Cysiaczek
post
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Cytat
Model, czyli warstwa biznesowa, to po prostu wszelkie operacje na danych

i za chwilę
Cytat
Akcja to po prostu jakieś działanie na danych. Akcje oczywiście, można pozamykać w obiekty, ale tak czy inaczej akcja jest raczej ogólniejszym pojęciem.


Mógłbyś to sprecyzować? Jakie działania wykonuje tu model? Model zawiera akcje, czy odwrotnie?

Zgadzam się, że MVC dotyczy warstw aplikacji, nie klas (nazwałem widok obiektem - powinienem warstwą). Wszystko rozbija sie jednak o implementację. Mówisz, że warstwa kontroli pośredniczy pomiędzy modelem, a widokiem. Mi się wydaje, że jej działanie może być nieco szersze. Może kontrolować sposób wyświetlania (np. może decydować o wyświetlaniu dokumentu w formie zwykłego XML, wysłać do przeglądarki stronę www, a nawet wysłać "goły" tekst - decyduje o tym żądanie, a nie model, czy widok).
Właśnie te różnice utrudniają komunikację, bo to, co dla Ciebie należy do warstwy modelu, u mnie robi akcja. To, co dla Ciebie już jest widokiem, dla mnie może jeszcze być logiką. Trudno więc rozmawiać o MVC bez podparcia się konkretną implementacją, bo jest to zbyt szerokie pojęcie.
Osobiście jako model mogę potraktować klasę:

  1. <?php
  2. class News{
  3.  
  4. function update() // zmiana właściwści obiektu
  5. function findById() // odnalezienie rekordu
  6. fucnction save() // zapis (przy użyciu jakiejś abstrakcji baz danych)
  7.  
  8. }
  9.  
  10. //uzytkować mogę tak:
  11.  
  12. class mojaAkcja extends Action(){
  13.  
  14. function Perform(){
  15.  
  16. $id=$params->get('id');
  17. $model=new News();
  18. $news=$model->findById($id);
  19. $news->setTitle('tytuł newsa');
  20. $model->update($news);
  21. $model->save();
  22. }
  23.  
  24. }
  25.  
  26. // żadanie przychodzi tak:
  27. // <a href="http://host.com/news/mojaAkcja/id_10" target="_blank">http://host.com/news/mojaAkcja/id_10</a>
  28. ?>


U Ciebie zapewne wygląda to inaczej i inne partie sytemu odpowiadaja za wykonanie tego żądania
url, który podałem jest rozpracowywany przez obiekty wchodzące w skład kontrolera, u Ciebie może to robić obiekt wogóle nie związany w kontrolerem.
Jednak jedno i drugie będzie dalej MVC (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)

Pozdrawiam.
Go to the top of the page
+Quote Post

Posty w temacie
- matix   [MVC] Czy dobrze interpretuję ?   25.05.2007, 22:02:58
- - ActivePlayer   kontroler: - sprawdza dane z geta, posta itd itd -...   25.05.2007, 22:10:37
- - Jabol   Widok wywołuje model aby pozyskać dane l...   25.05.2007, 23:00:33
- - jastu   Hm...ja korzystam z trochę innej interpretacj...   26.05.2007, 08:48:38
- - koodlaty   Cytat(matix @ 25.05.2007, 23:02:58 ) ...   26.05.2007, 08:49:22
- - matix   Ok, mniej więcej rozumiem i dziękuję za wszystkie...   26.05.2007, 09:07:45
- - koodlaty   Kod odbierajacy i filtrujacy dane z POST/GET (i ws...   26.05.2007, 09:52:22
- - sf   Proponowałbym wprowadzić dwie klasy - Re...   26.05.2007, 10:46:39
- - Cysiaczek   CytatRozumiem jak działają łańcuchy akcji ale nie ...   26.05.2007, 11:12:48
- - Ludvik   CytatAkcja wykonkuje operację na modelu po czym zw...   26.05.2007, 11:26:44
- - jastu   CytatZmiana widoku spowoduje katastrofę w klasach ...   26.05.2007, 12:11:59
- - Cysiaczek   Obiekt widoku nie powinien nic wiedzieć o logice s...   26.05.2007, 12:31:52
- - jastu   Skoro widok ma nic nie wiedzieć o logice systemu a...   26.05.2007, 12:50:56
- - Ludvik   Dobrym rozwiązaniem jest wzorzec View Helper. Cho...   26.05.2007, 12:54:52
- - Cysiaczek   Może ustalimy jakieś słownictwo? Każdy tu używa in...   26.05.2007, 14:10:27
- - Ludvik   Mi się wydaje, że MVC to nieco wyższy stopień abst...   26.05.2007, 15:33:58
- - Cysiaczek   CytatModel, czyli warstwa biznesowa, to po prostu ...   26.05.2007, 16:05:21
- - Ludvik   Tak jak pisałem, model to dane i operacje na nich....   26.05.2007, 16:30:45
- - matix   Wybaczcie, ale z tego co widzę to MVC to jedno wie...   26.05.2007, 18:44:26
- - Cysiaczek   Przykład dotyczy wyświetlenia warto...   26.05.2007, 19:31:23
- - matix   @up: jesteś kolejną osoba, która myśli inaczej niz...   26.05.2007, 19:46:15
- - Cysiaczek   Tak. Masz rację. Ja też to zauważyłem, dlatego pos...   26.05.2007, 19:51:04
- - menic   Tyle ile programistow tyle opini nt MVC MVC jest ...   26.05.2007, 20:02:58
- - matix   Całe forum nie, ale może przynajmniej przykleić te...   26.05.2007, 21:40:38
- - sf   Cysiaczek ładnie to rozpisał jakie są podejścia do...   26.05.2007, 22:13:52
- - menic   @Cysiaczek: Wlascicie to czemu bloga nie prowadzis...   26.05.2007, 22:18:09
- - Cysiaczek   Może nawet zacznę, ale dopiero jak się uporam z fr...   27.05.2007, 13:27:09
- - menic   niedoczekanie   27.05.2007, 13:30:35
- - sf   właśnie... mój się budował 2 lata, niby jest, ale...   27.05.2007, 15:57:07
- - href   Przepraszam ze tak sie wcinam w inny temat, ale ni...   23.07.2007, 09:13:10
- - kwiateusz   tak takie coś można nazwać mvc wszystkie warstwy s...   23.07.2007, 12:32:03
- - miedzna   Model.php [PHP] pobierz, plaintext <?phpclass ...   14.08.2007, 13:28:41
- - sanchoo   mam pytanie o moja interpretacje... tzn o krytyke ...   14.08.2007, 14:55:08
- - WebCM   Ostatnio zaglądnąłem do czę...   15.08.2007, 18:53:34
- - macbirdie   Skoro wszyscy przedstawiają swoje interpretacje, i...   31.08.2007, 02:14:41


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: 9.10.2025 - 21:10