Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> mvc i formularz
qbas-s
post
Post #1





Grupa: Zarejestrowani
Postów: 304
Pomógł: 1
Dołączył: 28.06.2009

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


Witam,
dla większości to pewnie będzie banał ale ja dopiero zaczynam z tym przygodę.
Chcę zbudować formularz kontaktowy w oparciu o wzorzec MVC.
Nie wiem tylko gdzie mają być przekazywane dane z formularza: do kontrolera czy do modelu.
Czy przekierowanie danych bezpośrednio z formularza na klasę poprzez znacznik <form> jest poprawne?
Pierwsze co mi przyszło na myśl to zbudowanie pliku(ale nie opartego na klasie) który by przejmował dane z tablicy $_POST a następnie dopiero przekazywał je do odpowiedniej klasy aby dokonać walidacji itp.
Wiem, że pewnie mi ktoś poleci jakiś framework ale ja chcę poznać zasadę działania od podszewki.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
qbas-s
post
Post #2





Grupa: Zarejestrowani
Postów: 304
Pomógł: 1
Dołączył: 28.06.2009

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


Podjąłem próbę wykonania formularza opartego o model MVC - oceńcie czy prawidłowo:


index.php - kontroler
  1.  
  2. <?php
  3. function __autoload($class){
  4. require $class.'.php';
  5. }
  6.  
  7. class index{
  8. private $form;
  9. private $view;
  10.  
  11. private $name; //przechowuje wartość pola z formularza
  12. private $msg; // przechowuje alerty
  13.  
  14. //konstruktor renderuje widok
  15. //oraz sprawdza czy został wysłany formularz
  16. function __construct(){
  17. if(isset($_POST['send'])){
  18. $this->name = trim($_POST['name']);
  19. $this->val();
  20. }
  21. $this->render();
  22. }
  23. //przygotowanie modelu - formularz
  24. private function prepareModel(){
  25. $this->form = new form();
  26. }
  27. //przygotowanie widoku
  28. private function prepareView(){
  29. $this->view = new View($this->msg,$this->form->st_form);
  30. }
  31. //renderowanie widoku
  32. private function render()
  33. {
  34. $this->prepareModel();
  35. $this->prepareView();
  36. }
  37. //walidacja formularza
  38. private function val(){
  39. if(strlen($this->name)>0){
  40. $this->msg = "Operacja wykonana poprawnie";
  41. }else{
  42. $this->msg = "Wypełnij puste pole";
  43. }
  44.  
  45.  
  46. }
  47. }
  48. new index();
  49. ?>



View.php - widok

  1. <?php
  2. class View{
  3.  
  4. public $msg;
  5. public $body;
  6.  
  7.  
  8. function __construct($msg,$body){
  9. $this->msg = $msg;
  10. $this->body = $body;
  11. $this->body();
  12. }
  13. public function body(){
  14. echo $this->msg."<br />";
  15. echo $this->body;
  16. }
  17.  
  18. }
  19.  
  20. ?>



form.php - model
  1. <?php
  2. class form
  3. {
  4. public $st_form;
  5.  
  6. public function __construct()
  7. {
  8. $this->showForm();
  9. }
  10. //przpisywanie formularza do zmiennej
  11. public function showForm()
  12. {
  13. $this->st_form = "<form action=\"index.php\" method=\"post\" >
  14. <input type=\"hidden\" name=\"send\" >
  15. <input type\"text\" name=\"name\" >
  16. <input type=\"submit\" value=\"send\" >
  17. </form>";
  18. }
  19. }
  20.  
  21. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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: 29.12.2025 - 15:37