Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: MVC - czy to jest zgodne z paradygmatem?
Forum PHP.pl > Forum > PHP
Vomit
Ucze sie pisac w MVC, chce to robic jak najbardziej poprawnie. Spogladajac na framework hwao, ktory niedawno zaprezentował, skleiłem cos takiego:


  1. <?php
  2.  
  3. abstract class Model
  4. {
  5. abstract public function Show();
  6.  
  7. }
  8.  
  9. class Index extends Model
  10. {
  11. public function __construct() {}
  12. public function Show()
  13. {
  14. try
  15. {
  16.  define('OPT_DIR', './opt/');
  17. require(OPT_DIR . 'opt.class.php');
  18.  
  19.  $tpl = new optClass;
  20. $tpl -> root = 'templates/';
  21. $tpl -> compile = 'templates_c/';
  22. $tpl -> assign('index','hahahaha');
  23. $tpl -> parse('index.tpl'); 
  24. }
  25. catch(optException $exception)
  26. { 
  27. optErrorHandler($exception); 
  28. }
  29. }
  30.  
  31. }
  32.  
  33. class Controller
  34. {
  35. private $action;
  36.  
  37. public function __construct() {}
  38.  
  39. public function setAction( $action = 'Index' )
  40. {
  41. $this->action = $action;
  42. }
  43.  
  44. public function Display()
  45. {
  46. $view = new $this->action();
  47. $view->Show();
  48. }
  49.  
  50. }
  51.  
  52.  
  53. $web = new Controller;
  54. $web->setAction();
  55. $web->Display();
  56.  
  57.  
  58. ?>


Czy zachowuje to załozenia MVC? Co powinienem dodac? Czego mi tu brakuje?
sf
wywalilbym to require_once i uzyl __autoload, pozatym lepiej zrobic klase abstrakcyjna, ktora ma w sobie tworzenie optClass dzieki temu nie musimy w kazdej akcji tworzyc od nowa obiektu, tylko dziedizczymy po jakies klasie, ktora to implementuje, kontroler wg. mnie najlepiej zrobic jako singleton, chyba, ze masz jakis powod by nie byl to podaj, chetnie poslucham koncepcji
sobstel
nie do końca mi się podoba, że w tym przykładzie widok = akcja. ogranicza to trochę elastyczność aplikacji. poza tym, według mojego rozumienia w MVC tyko akcje ma prawo zmieniać dane w modelu, widok jest tylko od pobierania danych z modelu i ich wyświetlania.
sf
Ogranicza elastycznosc w jakim sensie? Jakies rozwiniecie.

Moga byc akcje, ktore zmieniaja dane i akcje, ktore pobieraja dane i je wyswietlaja. Nie rozumiem czemu to przeszkadza winksmiley.jpg W koncu po to jest lancuch akcji.
Vomit
Do konca nie rozumiem, roznic w implementacji Akcji i Widoku stad jest to jedno i to samo ...
sf
Zobacz sobie jak to jest zrobione w phiend. Tam masz akcje podzielone na logiczne - zmieniaja dane i na widokowe - wyswietlaja dane.
Vomit
Tak podejrzewałem ze zostane odesłany do jakiegos FW. W takim razie skad moge pobrac tego Phienda?
sf
Z internetu. Wpisz w wyszukiwarke phiend framework.
Vomit
Niestety nie moge nic znalezc ...
Vomit
Nie szukam dokumentacji. Szukam kodu.
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.