Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Serwis z filmami, wykorzystanie wzorców projektowych
Lejto
post 27.03.2010, 22:02:10
Post #1





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


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. }



--------------------
Go to the top of the page
+Quote Post
-=Peter=-
post 27.03.2010, 22:33:15
Post #2





Grupa: Zarejestrowani
Postów: 304
Pomógł: 51
Dołączył: 4.02.2005
Skąd: Kraków

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


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łę.


--------------------
Go to the top of the page
+Quote Post
jareeny
post 28.03.2010, 10:28:10
Post #3





Grupa: Zarejestrowani
Postów: 226
Pomógł: 23
Dołączył: 2.10.2007
Skąd: Słupsk

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


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


--------------------
banan wszyscy.
Go to the top of the page
+Quote Post
Lejto
post 28.03.2010, 10:34:46
Post #4





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


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ć?

Ten post edytował Lejto 28.03.2010, 10:37:13


--------------------
Go to the top of the page
+Quote Post
Crozin
post 28.03.2010, 10:45:48
Post #5





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


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.
Go to the top of the page
+Quote Post
Lejto
post 28.03.2010, 13:25:00
Post #6





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


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ł?


--------------------
Go to the top of the page
+Quote Post
Crozin
post 28.03.2010, 15:10:32
Post #7





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


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ę?
Go to the top of the page
+Quote Post
Lejto
post 28.03.2010, 20:15:35
Post #8





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


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ł


--------------------
Go to the top of the page
+Quote Post
jareeny
post 29.03.2010, 07:32:23
Post #9





Grupa: Zarejestrowani
Postów: 226
Pomógł: 23
Dołączył: 2.10.2007
Skąd: Słupsk

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


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


--------------------
banan wszyscy.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.06.2025 - 08:31