Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> MVC budowa widoku
morawcik89
post
Post #1





Grupa: Zarejestrowani
Postów: 56
Pomógł: 1
Dołączył: 15.07.2008

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


W jednym za artykułów przeczytałem o takim tworzeniu widoku:
Kod
class WebPage{
     private $pageController;
     private $controllerStyle;
     private $page='';
     public function __construct(PageController $pageController){
         $this->pageController=$pageController;
         $this->controllerStyle=$pageController->getStyle();
     }
     public function doHeader(){
         $this->page='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="stylesheet" href="defaultstyle.css" type="text/css" /><title>Sample Web Page</title></head>';
     }
     public function doBody(){
         $this->page.='<body><div id="header"><h1>Header section</h1></div><div id="navbar"><ul><li><a href="#" title="Link 1">Link 1</a></li><li><a href="#" title="Link 2">Link 2</a></li><li><a href="#" title="Link 3">Link 3</a></li><li><a href="#" title="Link 4">Link 4</a></li><li><a href="#" title="Link 5">Link 5</a></li><li><a href="#" title="Link 6">Link 6</a></li></ul></div><div id="leftcol"><h1>Left column</h1></div><div id="centercol"><h1>Center column</h1></div><div id="rightcol"><h1>Right column</h1></div>';
     }
     public function doFooter(){
         $this->page.='<div id="footer"><h1>Footer section</h1></div></body></html>';
     }
     public function getPage(){
         return $this->page;
     }
     public function getControllerStyle(){
         return $this->controllerStyle;
     }
}


Czy tak powinno się tworzyć klasy widoku czy jest na to może inny lepszy sposób?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
batman
post
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




1. popraw bbcode, ponieważ teraz nie da się tego przeczytać. Zamiast code użyj php.
2. Bardzo słaby przykład. Szukaj dalej.
3. IMHO powinno to wyglądać mniej więcej tak. Zapis jest w znacznej mierze koncepcyjny, więc nie bierz go dosłownie.
  1. <?php
  2. class View
  3. {
  4. /**
  5.  * @var array $_data tablica do przechowywania zmiennych, ktore zostana przekaza
    ne do widoku
  6.  */
  7. private $_data = array()
  8.  
  9. /**
  10.  * Pusta metoda do przeciazenia w konkretnym widoku
  11.  */
  12. public function init() {
  13. }
  14.  
  15. /**
  16.  * Dodawanie naglowkow (znaczniki meta)
  17.  */
  18. public function addHeader() {
  19. }
  20.  
  21. /**
  22.  * Dodawanie javascript
  23.  */
  24. public function addScript() {
  25. }
  26.  
  27. /**
  28.  * Dodawanie javascript
  29.  */
  30. public function addStyle() {
  31. }
  32.  
  33. /**
  34.  * Zapisanie wartosci jakiejs zmiennej, ktora pozniej bedzie uzyta w widoku
  35.  */
  36. public function setVar() {
  37. }
  38.  
  39. /**
  40.  * Dodanie tytulu strony
  41.  */
  42. public function setTitle() {
  43. }
  44.  
  45. /**
  46.  * Wygenerowanie widoku
  47.  */
  48. final public render() {
  49. }
  50. }
  51.  
  52. class SomeView extends View
  53. {
  54. public function init() {
  55. // jakies operacje dla tego widoku, np wywolanie $thia->addHeader()
  56. }
  57. }
  58. ?>


A plik widoku, to zwykły html, do którego przekazujesz odpowiednie zmienne.
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: 5.10.2025 - 18:14