Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: MVC - pierwsze kroki :)
Forum PHP.pl > Forum > Przedszkole
sanchoo
Witam!... pisze pierwsza swoja apliakcje w MVC... nie do konca czuje sie w tym dobrze winksmiley.jpg Tzn nie jestem pewny czy dobrze rozumiem to zagadnienie. WIDOK:
  1. <?php
  2. class view
  3. {
  4. public function __construct()
  5. {
  6. global $control;
  7. global $smarty;
  8. $tytul=stripslashes($control->getName());
  9. $opis=stripslashes($control->getOpis());
  10. $color=$control->getColor();
  11. //$zawartosc=$control->zawartosc;
  12. $smarty->assign('title', $tytul);
  13. $smarty->assign('tytul_img', $tytul); // obrazek do dzialu
  14. $smarty->assign('tytul_tekst', $opis); //opis na brazowym pasku
  15. $smarty->assign('color', $color); //color tla zawartosci
  16.  
  17.  
  18.  
  19. $smarty->assign('tpl_name', $tytul); //jaki plik podpiac?
  20.  
  21.  
  22.  
  23. $smarty->display('ramka.tpl');  //odpalenie ramki (include zawartosc)
  24. }
  25.  
  26.  
  27.  
  28. }
  29. ?>


MODEL:
  1. <?php
  2. class model extends SourceFactory //SourceFactory do obslugi bazy db
  3. {
  4. public function __construct()
  5. {
  6. echo "MODEL"; //:P //dla picu
  7. }
  8.  
  9. function name_dzial($id) //pobiera z bazy nazwe dzilau, opis i kolor tla zawartosci 
  10. {
  11. $sql="SELECT * FROM `services_name` where id_name=".$id;
  12.  
  13. $data=SourceFactory::_getSourceCol($sql);
  14.  
  15. if($data === false)
  16. {
  17. echo "Nieprawidłowe zapytanie SELECT w metodzie open(): ".$data;
  18. }
  19.  
  20.  return $data;
  21.  
  22.  
  23.  
  24. }
  25.  
  26.  
  27. function logowanie ($login, $pass) //sprawdza jakie prawa ma user (sesje trzeba zrobic :))
  28. {
  29. $sql="SELECT `services_prawa` FROM `user` WHERE `login` LIKE '".$login."' AND `password` LIKE '".$pass."' LIMIT 1";
  30.  
  31. $data=SourceFactory::_getSourceRow($sql);
  32.  
  33. if($data === false)
  34. {
  35. echo "Nieprawidłowe zapytanie SELECT w metodzie logowanie(): ".$data;
  36. }
  37. return $data;
  38.  
  39. }
  40. ?>


controler:
Do teogo sa przekazywane zmienne bezposrednio:
  1. <?php
  2. class control{
  3. private $name;
  4. private $opis;
  5. private $zawartosc;
  6. private $prawa; //0- nie zalogowany, 1- user 2-admin
  7. private $color; //kolor tla zawartosci
  8.  public function __construct($dzial=0, $id=0)
  9.  {
  10.  global $model;
  11. $name = $model->name_dzial($dzial);
  12. $this->setName($name[1]);
  13. $this->setOpis($name[2]);
  14. $this->setColor($name[3]);
  15.  
  16. if($id==1) $model->logowanie(); //jesli jestem w your images sprawdza logowanie - dolozyc sprawdzanie sesji... musi sie wylogowac aby mogl sie logowac ponownie :)
  17.  
  18.  
  19.  }
  20.  
  21.  
  22. ?>


co do global $jakasklasa (prosze bez komentarza nie bedzie tego winksmiley.jpg)

Mysalem zeby dodac jeszcze jedna klase do filtrowania rpzychodacych zmiennych i gdzie tworzona byla by z conrolera...
to sa dopiero "srogie" podstawy smile.gif Pytanie czy w dobrym kierunku ide smile.gifquestionmark.gif
Cezar708
Cytat(sanchoo @ 7.08.2007, 07:14:49 ) *
co do global $jakasklasa (prosze bez komentarza nie bedzie tego winksmiley.jpg)


Cytat(Cysiaczek @ 7.08.2007, 09:12:24 ) *
Wybacz - pierwsze, co zobaczyłem, to łowo global w kodzie.


tongue.gif

ale fakt... lepiej jest używać myConfig::zmienna zamiast global zmienna
sanchoo
Znalazlem na forum ze model rpzekazuje do widoku dane:)No... bez sensu.. powiedzmy ze kiedys model przenosze do innej apliakcji wtedy musze go edytowac...W tej chwili mam tak ze odpowiendi kontlorer pyta modela "User Jasiek kiedy ostatnio sie zalogowal" na to model return "06-16-6666". Contlorer o ok zapisuje to w $ostatniozalogowany. Na koncu odpalam odpowiedni widok który odwołuje się do smartów. dochodze do assign('ostatnia_rejestracja', $contlorer->getCzas()) (potrzebuje czasu to sobie go pobiore/ewentualnie tworzyc widok z parametrami)Takie rozwiazanie wydaje mi sie bardziej sensowne niz:Contlorer pyta model kiedy ostanio ktos by zalogowany a ten wrzuca to do widoku np $widok->setCzas($data);czy jakos zle to rozumiem..questionmark.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.