Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Serwis z filmami
Forum PHP.pl > Forum > PHP
Lejto
Witajcie. Piszę ostatnio skrypt filmów online coś jak ekino.tv. Podział filmów na kategorie itp. Dodawanie filmów. Wyświetlanie ostatnich itp. Zastanawiałem się nad wykorzystaniem w tym projekcie wzorców projektowych, ale nie wiem jakich użyć. Chciał bym aby kod był optymalny. Moglibyście wysunąć jakieś propozycje?
Mój index
  1. <?
  2. ?>
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  4. <html>
  5. <head>
  6. <?
  7. include("config.php");
  8. include("libs/db.class.php");
  9. $db = new DB();
  10. include("libs/core.class.php");
  11. $c = new core($db);
  12. include("function.inc.php");
  13. $f = new functions($db);
  14.  
  15. $page = htmlspecialchars($_GET['page']);
  16. ?>
  17. <base href="" />
  18. <meta name="Keywords" content="" />
  19. <meta name="description" content="" />
  20. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  21. <link rel="stylesheet" href="css/style.css" type="text/css">
  22. <link rel="stylesheet" type="text/css" href="css/imageScroller.css">
  23. <link rel="stylesheet" href="css/style_box.css" type="text/css" media="screen" charset="utf-8">
  24. <script src="js/jquery-1.3.1.min.js" type="text/javascript" charset="utf-8"></script>
  25. <script src="js/slider.js" type="text/javascript" charset="utf-8"></script>
  26. </head>
  27. <title></title>
  28. <body>
  29. <div id="cont">
  30. <div id="img2"></div>
  31. <div id="img4">
  32. <div class="m_c">
  33. <div class="chromestyle" id="chromemenu">
  34. <ul>
  35. <li><a href="index">Strona główna</a></li>
  36. <li><a href="filmy">Filmy</a></li>
  37. <li><a href="seriale">Seriale</a></li>
  38. <li><a href="dodaj">Dodaj film</a></li>
  39. <li><a href="konto">Moje konto</a></li>
  40. </ul>
  41. </div>
  42. </div>
  43. </div>
  44. <?
  45. if($page == 'index' or $page == '')
  46. {
  47. ?>
  48. <div id="img5"></div>
  49. <div id="img6"></div>
  50. <div id="img7">
  51. <div class="m_d">
  52. <div id="outerContainer">
  53. <div id="imageScroller">
  54. <div id="viewer" class="js-disabled">
  55. <? $f->movies(); ?>
  56. </div>
  57. </div>
  58.  
  59. </div>
  60. </div>
  61. </div>
  62. <div id="img8"></div>
  63. <div id="img9"></div>
  64. <div id="img10"></div>
  65. <div id="img11"></div>
  66. <div id="img12"></div>
  67. <div id="img13" class="scrollButtons left"></div>
  68. <div id="img14"><? $f->show_las_movies(); ?></div>
  69. <div id="img15" class="scrollButtons right"></div>
  70. <div id="img16"></div>
  71. <div id="img17"></div>
  72. <div id="img21"></div>
  73. <div id="img22"></div>
  74. <div id="img23"></div>
  75. <div id="img24"></div>
  76. <div id="img26"></div>
  77. <div id="img25"></div>
  78. <div id="img27"></div>
  79. <?
  80. }
  81. else
  82. {
  83. ?>
  84. <div id="tlo">
  85. <?
  86. $c->select_page($page);
  87. ?>
  88. </div>
  89. <?
  90. }
  91. ?>
  92.  
  93.  
  94.  
  95.  
  96. </div>

funkcje
  1. <?
  2. class functions{
  3.  
  4. public function __construct($sql)
  5. {
  6. $this->sql = $sql;
  7. include('libs/DBManager.class.php');
  8. $dbm = new DBManager($this->sql = $sql);
  9. global $dbm;
  10. //var_dump($dbm);
  11. }
  12. public function movies()
  13. {
  14. global $dbm;
  15. var_dump($dbm);
  16. // $dbm->select("description","video")->from("videos")->where("id=1")->limit(1)->result();
  17.  
  18. var_dump($dbm);
  19. $sql = $this->sql->query('select video, description, title, cover, data, category, id from videos');
  20. while($row = $sql->fetch_array())
  21. {
  22. ?>
  23. <a class="wrapper" href="http://www.apple.com" title="<?=$row[title];?>">
  24. <img class="logo" id="<?=$row[title];?>" src="<?=$row[cover];?>" alt="<?=$row[title];?>"></a>
  25. <?
  26. }
  27. }
  28. public function show_las_movies()
  29. {
  30. $sql = $this->sql->query('select video, description, title, cover, data, category, id from videos');
  31. ?>
  32. <div id="wrapper">
  33. <div id="slider">
  34.  
  35. <div style="overflow: hidden;" class="scroll">
  36. <div class="scrollContainer">
  37.  
  38. <?
  39. while($row = $sql->fetch_array())
  40. {
  41. ?>
  42.  
  43. <div class="panel">
  44. <img class="logo" id="<?=$row[title];?>" src="<?=$row[cover];?>" alt="<?=$row[title];?>"></a>
  45. </div>
  46. <div class="panel" >
  47. <img class="logo" id="<?=$row[title];?>" src="<?=$row[cover];?>" alt="<?=$row[title];?>"></a>
  48. </div> <div class="panel" >
  49. <img class="logo" id="<?=$row[title];?>" src="<?=$row[cover];?>" alt="<?=$row[title];?>"></a>
  50. </div> <div class="panel" >
  51. <img class="logo" id="<?=$row[title];?>" src="<?=$row[cover];?>" alt="<?=$row[title];?>"></a>
  52. </div>
  53.  
  54. <?
  55. }
  56. ?>
  57. </div>
  58.  
  59. </div>
  60. </div>
  61. </div><?
  62. }
  63. }

-=Peter=-
Może zacznij od mvc, bo widzę że stosujesz wzorzec o nazwie "spagetti"... Poza tym co to za klasa "functions"? Klasa ma odwzorowywać jakiś spójny logiczny byt, a nie być "zbiornikiem" na funkcje. Jeśli już chcesz pisać klasy aby były zbiornikami na funkcje to twórz klasy z metodami statycznymi.

Jeśli nie wiesz jakich wzorców użyć to nie używaj żadnych, lepiej poczytaj o teorii i opisy wzorców, jeśli jakiś będzie pasował do Twojego projektu to wtedy to zauważysz. Nic na siłę.
jareeny
tak jak kolega wyżej napisał, zastosuj MVC, ale to chyba będzie problem dla Ciebie winksmiley.jpg

Poza tym, mieszanie htmla nawet w klase? pozdrawiam
Lejto
no mvc jeszcze niestety nie umiem
a jak nie mieszać html w klasie? tongue.gif
dodatkową funkcje napisać czy jak?
a tak bez mvc to jak to rozwiązać?
Crozin
Jak się korzysta z wzorców? Musisz je sobie najpierw przyswoić - w ramach czystej teorii - a później, jak coś piszesz i napotykasz na problem natury projektowej, wykorzystanie jakiegoś wzorca (lub jego części) może (nie musi) pomóc Ci w rozwiązaniu tego problemu. Wzorce projektowe nie są czymś w oparciu o co pisze się aplikacje - ów aplikacje mogą co najwyżej implementować jakieś wzorce.


btw: zaczynam zauważać, że MVC dla PHP stało się/staje się tym czym AJAX dla JS.
Lejto
ok, dzięki za rade
a co do mojej klasy + html, to jak to inaczej rozwiązać?

@Crozin a tak z własnego doświadczenia jakiego rozwiązania byś tu użył?
Crozin
Cytat
a co do mojej klasy + html, to jak to inaczej rozwiązać?
W jednym miejscu aplikacji skupić się na pobraniu/przetworzeniu danych, w innym na ich wyświetlaniu (do formatu HTML).
Cytat
@Crozin a tak z własnego doświadczenia jakiego rozwiązania byś tu użył?
Rozwiązania do czego? Jaki jest problem na dobrą sprawę?
Lejto
Cytat
W jednym miejscu aplikacji skupić się na pobraniu/przetworzeniu danych, w innym na ich wyświetlaniu (do formatu HTML).

jak zbudować takie funkcje, masz na myśli smarty czy pobieranie danych w funkcji w drugiej z foreach wyświetlanie ich
Cytat
Rozwiązania do czego? Jaki jest problem na dobrą sprawę?

chodzi mi o jakiś wzorzec który by się z moim systemie przydał
jareeny
Ale zrozum, że nikt nie jest w stanie Ci powiedzieć jaki wzorzec masz użyc. Musisz sam poznać wzorce, przeanalizować swoją aplikacje i przemyśleć czy jakiś wzorzec nie załatwiałby sprawy lepiej itd
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.