Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Podstawy obiektowości, na przykładzie bloga
kamil_lk
post
Post #1





Grupa: Zarejestrowani
Postów: 325
Pomógł: 33
Dołączył: 31.05.2008

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


Witam.
W ramach nauki obiektówki postanowiłem wykonać jakiś mały projekt, aby załapać podstawy. Po krótkim namyśle stwierdziłem, że napiszę sobie bloga.
I teraz mam do was, bardziej doświadczonych, pytanie. Czy idę w dobrą stronę podczas skrobania tego projektu? Co robię źle, a co dobrze (o ile coś (IMG:style_emoticons/default/tongue.gif) ). Może polecacie jakieś przystępne tutoriale (zadania), które odnoszą się do rzeczy praktycznych, zamiast do kwadratów, czy trójkątów?

Poniżej przedstawiam to co napisałem do tej pory. Co prawda nie ma tego wiele. Głównie chodzi mi tutaj o klasę content.php oraz wpisy.php.

index.php
  1. <?php
  2.  
  3. include_once('class/class.db.php');
  4. include_once('header.php');
  5. include_once('content.php');
  6. include_once('footer.php');
  7.  
  8. $db = new db("mysql:host=localhost;dbname=blog;", "root", "");
  9. $db->query('SET NAMES utf8');
  10.  
  11. $head = new Header('Kamil');
  12. echo $head->getHeader();
  13.  
  14. $content = new Content($db);
  15. $content->getSection();
  16.  
  17. $footer = new Footer;
  18. echo $footer->getFooter();
  19.  
  20. ?>


header.php
  1. <?php
  2.  
  3. class Header{
  4.  
  5. public function __construct($tytul){
  6. $this->tytul = $tytul;
  7. }
  8.  
  9. public function getHeader(){
  10. return '
  11. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  12. <html xmlns="http://www.w3.org/1999/xhtml">
  13. <head>
  14. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  15. <link rel="stylesheet" type="text/css" href="css/style.css" />
  16. <link rel="stylesheet" type="text/css" href="css/popup.css" />
  17. <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
  18. <script src="js/jquery-impromptu.js"></script>
  19. <title>'.$this->tytul.'</title>
  20.  
  21. <script type="text/javascript">
  22. function popup(zmienna){
  23. $.prompt(zmienna,{ overlayspeed: 2, buttons: {}});
  24. }
  25. </script>
  26.  
  27. </head>
  28. <body>
  29. ';
  30. }
  31.  
  32. }
  33.  
  34. ?>


footer.php
  1. <?php
  2.  
  3. class Footer{
  4.  
  5. public function getFooter(){
  6.  
  7. return '
  8. <div id="footer">
  9. <span class="footer">Created by Kamil</span>
  10. </div>
  11. </body>
  12. </html>';
  13.  
  14. }
  15.  
  16. }
  17.  
  18. ?>


content.php
  1. <?php
  2.  
  3. include_once('class/wpisy.php');
  4.  
  5. class Content{
  6.  
  7. public $cont;
  8. private $db;
  9.  
  10. public function __construct($db){
  11. $this->db = $db;
  12. }
  13.  
  14. public function getSection(){
  15. echo '<div id="content">';
  16. if( isset($_GET['section']) ) {
  17. switch($_GET['section']) {
  18.  
  19. case 'show' : $this->cont = new Wpisy($this->db); $this->cont->show(); break;
  20.  
  21. default: $this->cont = new Wpisy($this->db); $this->cont->error404();
  22. }
  23.  
  24. if( isset($_GET['action']) )
  25. switch($_GET['action']) {
  26.  
  27. case 'add' : $this->cont = new Wpisy($this->db); $this->cont->addComent($_POST); break;
  28.  
  29. }
  30.  
  31. } else {
  32.  
  33. $this->cont = new Wpisy($this->db); $this->cont->show();
  34.  
  35. }
  36. echo '</div>';
  37.  
  38. }
  39.  
  40. }
  41. ?>


wpisy.php
  1. <?php
  2.  
  3. class Wpisy{
  4.  
  5. private $db;
  6.  
  7. public function __construct($db){
  8. $this->db = $db;
  9. }
  10.  
  11. public function show(){
  12. if(!isset($_GET['param'])){
  13. $result = $this->db->select('wpisy', '1=1 ORDER BY data_dodania desc', '', 'id, temat, tresc, DATE_FORMAT(data_dodania, \'%d.%m.%Y\') AS data_dodania');
  14. foreach($result as $record){
  15. echo '
  16. <div class="wpis">
  17.  
  18. <h6>'.$record['temat'].'</h6>
  19. <span class="data">'.$record['data_dodania'].' &raquo; Kamil</span>
  20. <div class="tresc">'.$record['tresc'].'</div>
  21. <div class="wiecej">
  22. <a href="index.php?section=show&param='.$record['id'].'" class="wiecej clear">Czytaj całość</a>
  23. </div>
  24.  
  25. </div>
  26. ';
  27. }
  28. } else {
  29. $result = $this->db->select('wpisy', 'id='.$_GET['param'], '', 'id, temat, tresc, DATE_FORMAT(data_dodania, \'%d.%m.%Y\') AS data_dodania');
  30. foreach($result as $record){
  31. echo '
  32. <div class="wpis">
  33.  
  34. <h6>'.$record['temat'].'</h6>
  35. <span class="data">'.$record['data_dodania'].' &raquo; Kamil</span>
  36. <div class="tresc">'.$record['tresc'].'</div>
  37. <div class="wiecej">
  38. <a href="index.php?section=show" class="wiecej clear">Wróć</a>
  39. </div>
  40.  
  41. </div>
  42. ';
  43. }
  44.  
  45. $result = $this->db->select('komentarze k, wpisy w', 'id_wpisu='.$_GET['param'].' and w.id=k.id_wpisu', '', 'k.id kid, nick, k.tresc ktresc, k.temat ktemat, DATE_FORMAT(k.data_dodania, \'%d.%m.%Y %h:%i:%s\') AS kdata_dodania');
  46. foreach($result as $record2){
  47. echo $record2['kid'].' - '.$record2['nick'].' - '.$record2['ktemat'].' - '.$record2['ktresc'].' - '.$record2['kdata_dodania'].'<br /><br />';
  48. }
  49.  
  50. echo '
  51. <form action="index.php?section=show&action=add&param='.$_GET['param'].'" method="post">
  52. <fieldset class="komentarze">
  53. <label for="nick">Nick<br /><input type="text" name="nick" id="nick" value="" /></label>
  54. <label for="temat">Temat <span class="wymagane">*</span><br /><input type="text" name="temat" id="temat" value="Re: '.$record['temat'].'" /></label>
  55. <label for="tresc">Treść <span class="wymagane">*</span><br /><textarea name="tresc" id="tresc"></textarea></label>
  56. <label for="dodaj"><input type="submit" name="dodaj" id="dodaj" value="Dodaj komentarz" /></label>
  57. </fieldset>
  58. </form>
  59. ';
  60. }
  61. }
  62.  
  63. public function addComent($array){
  64.  
  65. if(isset($array['dodaj'])){
  66. if( isset($array['temat']) && isset($array['tresc']) && $array['temat'] != '' & $array['tresc'] != ''){
  67. $array['id_wpisu'] = $_GET['param'];
  68. $array['data_dodania'] = date('Y-m-d h:i:s');
  69. if(empty($array['nick']) || $array['nick'] == "") $array['nick'] = 'anonim';
  70. $result = $this->db->insert('komentarze', $array);
  71.  
  72. if($result){
  73. echo '<script type="text/javascript">popup("Dodano!")</script>';
  74. } else {
  75. echo '<script type="text/javascript">popup("Nie dodano!")</script>';
  76. }
  77. } else echo '<script type="text/javascript">popup("Brak danych!")</script>';
  78.  
  79. }
  80. }
  81.  
  82. public function error404(){
  83. header('Location: 404.html');
  84. }
  85. }
  86.  
  87. ?>


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: 24.08.2025 - 01:34