Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wielki projekt pisany obiektowo - BigDeal
Forum PHP.pl > Forum > Przedszkole
Kloc
Trzeba w końcu coś poczynić i muszę zaczerpnąć rady biggrin.gif.
Czy tak obiektowa struktura może zostać nazwana obiektową, czy też inaczej to się robi?

Oto mój szablon html:
  1. <!doctype html>
  2. <head>
  3.  
  4. <title>OOP</title>
  5. <meta charset="UTF-8"/>
  6. <link rel="stylesheet" href="plikcss.css" type="text/css"/>
  7.  
  8. </head>
  9.  
  10. <div id="container">
  11.  
  12. <ul id="menu"> <!-- STALA CZESC STRONY -->
  13. <li>menu 1</li>
  14. <li>menu 2</li>
  15. <li>menu 3</li>
  16. </ul>
  17.  
  18. <div id="center_block">
  19. To jest treść stale zmienna <!-- ZMIENNA CZESC STRONY -->
  20. </div>
  21.  
  22. <div id="footer"> <!-- STALA CZESC STRONY -->
  23. Stopka mojej strony
  24. </div>
  25.  
  26. </div>
  27.  
  28. </body>
  29. </html>


A tu zrobiony obiektowo:
  1. <?Php
  2.  
  3. class Szablon{
  4.  
  5. public function Szablon_gora(){
  6.  
  7. ?>
  8.  
  9. <!doctype html>
  10. <html>
  11. <head>
  12.  
  13. <title>OOP</title>
  14. <meta charset="UTF-8"/>
  15. <link rel="stylesheet" href="plikcss.css" type="text/css"/>
  16.  
  17. </head>
  18. <body>
  19.  
  20. <div id="container">
  21.  
  22. <ul id="menu"> <!-- STALA CZESC STRONY -->
  23. <li>menu 1</li>
  24. <li>menu 2</li>
  25. <li>menu 3</li>
  26. </ul>
  27.  
  28. <div id="center_block">
  29.  
  30. <?Php
  31.  
  32. }
  33.  
  34. ?>
  35. To jest treść stale zmienna <!-- ZMIENNA CZESC STRONY -->
  36.  
  37. <?Php
  38.  
  39. public function Szablon_dol(){
  40.  
  41. ?>
  42.  
  43. </div>
  44.  
  45. <div id="footer"> <!-- STALA CZESC STRONY -->
  46. Stopka mojej strony
  47. </div>
  48.  
  49. </div>
  50.  
  51. </body>
  52. </html>
  53.  
  54. <?Php
  55.  
  56. }
  57.  
  58. }
  59.  
  60. /*
  61. Wywołanie klasy
  62.  
  63. $szablon = new Szablon;
  64. $szablon->Szablon_gora();
  65. $szablon->Szablon_dol();
  66. */
  67.  
  68. ?>


I teraz aby stworzyć nową podstronę robię tak:
  1. <?Php
  2.  
  3. $szablon = new Szablon;
  4. $szablon->Szablon_gora();
  5.  
  6. ?>
  7.  
  8. To jest treść jakiejs podstrony, la la lalala la lala la... <!-- ZMIENNA CZESC STRONY -->
  9.  
  10. <?Php
  11.  
  12. $szablon->Szablon_dol();
  13.  
  14. ?>


Czyli wywołuje stałe części strony, a dodaję nową zmienną część. W przypadku gdy szablon mi się nie podoba to edytuję 1 plik z klasą szablonu, a nie 20 osobnych z podstronami.
Czy tak to powinno wyglądać, jakieś sugestie, rady?
Pozdro guitar.gif oneeyedsmiley02.png
Turson
jebłem sciana.gif
Zobacz jak to wygląda w MVC
Kloc
Moje rozwiązanie jest:
-proste/przejrzyste (choćby dla mnie)
-łatwe w edycji
-skuteczne

Jakie są wady, że powinno to wyglądać inaczej?
viking
To co tu zrobiłeś możesz wykonać przez jakikolwiek system szablonów osadzajac inne jego części. W takiej postaci kompletnie bez sensu.
tzm
Cytat(Turson @ 27.12.2014, 13:27:41 ) *
jebłem sciana.gif
Zobacz jak to wygląda w MVC



Mimo ze wulgaryzm i tego nie popieram na forum, w tym przypadku

ohm
To, że tworzysz jedną klasę i wywołujesz jej metody, to nie znaczy że jest to od razu programowanie obiektowe.

https://pl.wikipedia.org/wiki/Programowanie...atu_obiektowego

fr33d0m
Masz tok myślenia do pisania strukturalnego, zamiast:
  1. $szablon = new Szablon;
  2. $szablon->Szablon_gora();

wstaw include(); i wyjdzie na PLUS wink.gif
Kloc
W dużym uproszczeniu jak ja widzę MVC.

  1. <?Php
  2.  
  3. class Model{
  4.  
  5. public function function_model(){
  6. //Tutaj na podstawie info z Controller sprawdzam i pobieram dane, które należy wyświetlić
  7. //Przypisuje dane np. do odpowiednich zmiennych
  8. //I wywypłuje View
  9. }
  10.  
  11. }
  12.  
  13. class View{
  14.  
  15. public function function_view(){
  16. //Pokazyje odpiwedni widok (html) z przypisanymi danymi
  17. }
  18.  
  19. }
  20.  
  21. class Controller {
  22.  
  23. public function function_controller_url(){
  24. //Tutaj dostaje parametr z np. $_GET
  25. //I wywołuje Model
  26. }
  27.  
  28. }
  29.  
  30. /*
  31. Wywołanie klas
  32.  
  33. $model = new Model;
  34. $model->function_model();
  35.  
  36. $view = new View;
  37. $view->function_view();
  38.  
  39. $controller = new Controller;
  40. $controller->function_controller_url();
  41. */
  42.  
  43. ?>


Czy idę w dobrym kierunku?
Turson
Nie do końca. To kontroler powinien mieć kontrolę nad tym co przesyłać do widoku i co renderować a nie model. Pobierz i sprawdź pierwszy lepszy framework (z tych "nowszych").
http://anantgarg.com/2009/03/13/write-your...amework-part-1/
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.