Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP]Programowanie obiektowe, jak nie mieszać logiki z HTMLem
gargamel
post
Post #1





Grupa: Zarejestrowani
Postów: 278
Pomógł: 35
Dołączył: 25.06.2010

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


Przyszedł czas przestawić się na programowanie obiektowe, ale żeby od razu źle nie zacząć, mam pytanko.

Napisałem prostą klasę (do generowania formularzy), aby od czegoś zacząć:
  1. class formClass
  2. {
  3. public $output;
  4. public $startedGroup;
  5.  
  6. public function formGroup(){
  7. if($startedGroup){
  8. $this -> output .= "</div>\n";
  9. }
  10. $this -> output .= "<div>\n";
  11. $this -> startedGroup = true;
  12. }
  13.  
  14. public function formElement($name){
  15. $this -> output .= "<div>".$name.": <input type='text' name='".$name."' /></div>\n";
  16. }
  17.  
  18. public function printForm(){
  19. $this -> output .= "</div>\n";
  20. echo $this -> output;
  21. }
  22. }
  23.  
  24. $form = new formClass;
  25.  
  26. $form -> formGroup();
  27. $form -> formElement('imie');
  28. $form -> formElement('nazwisko');
  29. $form -> formElement('wiek');
  30.  
  31. $form -> formGroup();
  32. $form -> formElement('adres_email');
  33. $form -> formElement('telefon');
  34.  
  35. $form -> printForm();


I teraz problem... wszędzie pisze się aby nie mieszać logiki z HTMLem, a ja tu nie widzę żadnej możliwości, aby wywoływane metody nie zwracały HTMLa...
W jaki sposób powinno się prawidłowo coś takiego robić?

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
lobopol
post
Post #2





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

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


Raczej w mieszaniu html z php chodzi oto aby nie robić czegoś takiego:

  1. <div>aaa</div>
  2.  
  3. <?php
  4. function a(){
  5. return 'a';
  6. }
  7. $a = 'b';
  8. echo $a;
  9. ?>
  10.  
  11. <div>bb</div>
  12. <?php $a=a();?>

.itd

Powinieneś oddzielić od siebie warstwę która ustawia wartości zmiennych, przyjmuje dane i je obrabia o warstwy która ją wyświetla. Idealnym przykładem jest mvc
Masz tam podział na
modele->tu masz metody i funkcje pobierające np. dane z bazy, zapisujące je itd. Po prostu zbiór funkcji i metod
kontrolery->odbiera wszystkie akcje użytkownika i uruchamia metody z modelu i odpala widok
widoki tu po prostu masz to co chcesz wyświetlić użytkownikom ( tu dajesz echa )

I taka rada ode mnie nie dawaj w metodach echo. Daj return i po w widoku to co zwróci wyswietl
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: 11.10.2025 - 18:50