Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Prosta klasa rotatora linków do analizy, Chciałbym się dowiedzieć co robię źle i jak to powinno wyglądać.
emtiej
post
Post #1





Grupa: Zarejestrowani
Postów: 207
Pomógł: 18
Dołączył: 12.04.2009
Skąd: Rypin

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


Już od dawna miałem zamiar zacząć pisać coś w OOP, do tej pory tylko teoria z której wiadomo dużo bez praktyki do głowy nie wejdzie i postanowiłem napisać prosty skrypt rotatora linków, stworzyłem klasę "lr" i klasę "admin" która jest rozszerzeniem klasy lr(chciałbym, aby w lr znajdowały się funkcje które wyciągają linki z bazy i takie tam, co chciałbym też wykorzystać w panelu administracyjnym. Dopiero zacząłem i już mam jakieś wątpliwości co do logiki i użyteczności kodu. To mój pierwszy zamach na OOP, proszę o wskazówki co źle robię, jak wy to byście zrobili itp. Rotator ma być prosty, jego funkcje to: dodawanie, usuwanie, edycja dodanych linków. W bazie zrobiłem sobie tabelę "config" w której przechowuję login i hasło administratora.

Tu plik lrclass.php
  1. <?php
  2.  
  3. //-----------------------------------------------------------
  4. //- Klasa rotatora linków -
  5. //-----------------------------------------------------------
  6.  
  7. class lr
  8. {
  9. private function db()
  10. {
  11. $this->dbhost = "localhost";
  12. $this->dbname = "lr";
  13. $this->dbuser = "lg";
  14. $this->dbpass = "lgpass";
  15.  
  16. $conn = new mysqli($this->dbhost, $this->dbuser, $this->dbpass, $this->dbname);
  17.  
  18. return $conn;
  19.  
  20. }
  21.  
  22. public function lr()
  23. {
  24. print_r($this->GetConfig());
  25. }
  26.  
  27. public function GetConfig()
  28. {
  29. // funkcja pobiera i zwraca tabel? config
  30. $db = $this->db();
  31. $query = $db->query("SELECT * FROM config");
  32. $result = $query->fetch_assoc();
  33.  
  34. return $result;
  35. }
  36. public function GetLinks()
  37. {
  38. $db = $this->db();
  39. $query = $db->query("SELECT * FROM links");
  40. $result = $query->fetch_assoc();
  41.  
  42. return $result;
  43. }
  44.  
  45.  
  46.  
  47.  
  48. }
  49.  
  50. ?>
  51.  


adminclass.php
  1. <?php
  2.  
  3. //-----------------------------------------------------------
  4. //- Klasa panelu administracyjnego -
  5. //-----------------------------------------------------------
  6. require_once("lrclass.php");
  7.  
  8. class admin extends lr
  9. {
  10.  
  11. var $admin;
  12.  
  13. public function admin()
  14. {
  15. if(self::IsAdmin())
  16. {
  17. echo "Jesteś zalogowany jako administrator";
  18.  
  19. if($_GET['action'] == 'logout')
  20. {
  21. self::StopAdminSession();
  22. }
  23. }else{
  24. if($_GET['login'] && $_GET['pass'])
  25. {
  26. if(self::login($_GET['login'], $_GET['pass']))
  27. {
  28. echo "Dobre dane do logowania";
  29. }else{
  30. echo "Złe dane do logowania!";
  31. }
  32. }else{
  33. echo "Tu formularz logowania";
  34. echo $_SESSION['login'];
  35. }
  36. }
  37.  
  38. }
  39. public function login($login, $pass)
  40. {
  41. $this->adminlogin = self::GetAdminLogin();
  42. $this->adminpass = self::GetAdminPass();
  43.  
  44. if($login == $this->adminlogin && $pass == $this->adminpass)
  45. {
  46. self::StartAdminSession();
  47. return TRUE;
  48. }else{
  49. return FALSE;
  50. }
  51.  
  52.  
  53. }
  54. public function StartAdminSession()
  55. {
  56. $_SESSION['login'] = TRUE;
  57.  
  58. }
  59. public function StopAdminSession()
  60. {
  61. $_SESSION = array();
  62. }
  63. public function GetAdminLogin()
  64. {
  65. $db = parent::db();
  66. $query = $db->query("SELECT value FROM config where name='adminlogin'");
  67. if(!$db) DIE("Zapytanie się nie powiodło");
  68. $result = $query->fetch_object();
  69. $result = $result->value;
  70.  
  71. return $result;
  72. }
  73. public function GetAdminPass()
  74. {
  75. $db = parent::db();
  76. $query = $db->query("SELECT value FROM config where name='adminpass'");
  77. if(!$db) DIE("Zapytanie się nie powiodło");
  78. $result = $query->fetch_object();
  79. $result = $result->value;;
  80.  
  81. return $result;
  82. }
  83. public function IsAdmin()
  84. {
  85. if($_SESSION['login']){
  86. return TRUE;
  87. }else{
  88. return FALSE;
  89. }
  90. }
  91. }
  92.  
  93. ?>


W klasie lr jest funkcja db(), czy to jest dobry pomysł żeby ją tam umieszczać? Może lepszym wyjściem byłaby osobna klasa do łączenia z bazą? Naprawdę teoretycznie trochę wiem, ale w praktyce wymiękam hah smile.gif Pomóżcie początkującemu ^^

Ten post edytował emtiej 22.03.2010, 13:33:34
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 19.08.2025 - 10:16