Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [OOP]Pisanie CMS w OOP
PawelC
post
Post #1





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Chcę stworzyć sobie system CMS, taki który za jakiś czas będę mógł bez problemu rozbudować, i teraz moje pytanie, czy taki podział klas jest dobry rozwiązaniem.

Klasa user.class.php
- dodawanie użytkownika
- kasowanie użytkownika
- edycja użytkownika
- banowanie użytkownika
- podgląd profilu użytkownika
- przypomnienie hasła

Klasa article.class.php
- dodawanie artykułu
- kasowanie artykułu
- edycja artykułu
- podgląd artykułu
- wylistowanie artykułów

Klasa category.class.php
- dodawanie kategorii
- usuwanie kategorii
- edycja kategorii
- podgląd wszystkich kategorii

Klasa news.class.php
- dodawanie newsa
- kasowanie newsa
- edycja newsa
- podgląd newsa
- wylistowanie newsów

Klasa plugin.class.php
- dodanie pluginu
- aktywacja/dezaktywacja pluginu
- edycja pluginu

Klasa db.class.php
W tej klasie będzie wszystko związane, z bazą danych np łącznie z bazą

Klasa validation.class.php
Będzie to klasa odpowiedzialna za walidacja wprowadzonych danych

Klasa filter.class.php
Zastosowanie tej klasy, to filtrowanie wszelkich danych wprowadzanych przez użytkowników

Za wszelkie pomysły, opinie i sugestie z góry dziękuję.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
PawelC
post
Post #2





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Cytat
Ale jeśli ExPlOiTowi zależy jedynie na segregacji zapytań na bazie czyli klasa user to zbiór zapytań typu select, insert, update, delete dla tabeli / tabel user to wszystko jest ok
Dokładnie to mi chodzi, tak aby nie mieć w przyszłości problemów z rozbudową systemu. Dokładnie coś tego typu:
  1. class Model_User
  2. {
  3. private $db;
  4. public function __construct(database $db)
  5. {
  6. $this->db=$db;
  7.  
  8. }
  9. //Dodanie nowego użytkownika
  10. public function addUser($login,$haslo)
  11. {
  12. $this->login=htmlspecialchars($login);
  13. $this->haslo=htmlspecialchars($haslo);
  14. $result=$this->db->query("insert into `users` values('$login','$haslo')");
  15. if(!$result===false)
  16. {
  17. echo "Wystąpił błąd podczas rejestracji nowego użytkownika!";
  18. }
  19. else
  20. {
  21. echo "Zostałeś zarejestrowany poprawnie.";
  22. }
  23.  
  24. }
  25.  
  26. //Usuwanie użytkownika z bazy
  27. public function deleteUser($login)
  28. {
  29. $this->login=htmlspecialchars($login);
  30. $result=$this->db->query("delete from users where login='$login'");
  31. if(!$result===false)
  32. {
  33. echo "Wystąpił błąd podczas usuwania użytkownika!";
  34. }
  35. else
  36. {
  37. echo "Użytkownik o loginie $login został poprawnie usunięty z bazy.";
  38. }
  39. }
  40.  
  41. //Logowanie użytkownika
  42. public function userLogin($login,$haslo)
  43. {
  44.  
  45. $this->login=htmlspecialchars($login);
  46. $this->haslo=htmlspecialchars($haslo);
  47. $result=$this->db->query("select login,haslo from users where login='$this->login' and haslo='$this->haslo'");
  48.  
  49. if(mysqli_num_rows($result)==0)
  50. {
  51. echo "Brak użytkownika o podanym loginie!";
  52. }
  53. else
  54. {
  55. $_SESSION['zalogowany']="$this->login";
  56. header("Location: test.php");
  57. }
  58.  
  59.  
  60. }
  61.  
  62.  
  63. }
  64.  
  65. ?>

Zastanawia mnie jedno, jak jest dokładnie stworzone zarządzanie użytkownikiem, czy jest to jedna klasa, która wszystko robi, dodaje, kasuje itp, czy dla np dodania i kasowania, tworzone są osobne klasy? Bo szczerze mówiąc, im więcej o OOP czytam, tym bardziej się gubię.

Ten post edytował ExPlOiT 3.10.2010, 20:12:08
Go to the top of the page
+Quote Post

Posty w temacie
- ExPlOiT   [OOP]Pisanie CMS w OOP   3.10.2010, 17:13:41
- - Spawnm   CytatKlasa plugin.class.php - dodanie pluginu - ak...   3.10.2010, 17:20:45
- - ExPlOiT   Wgrywasz plugin do folderu plugins, logujesz się d...   3.10.2010, 17:30:13
- - Crozin   Takie czynności jak dodanie użytkownika są zbyt sk...   3.10.2010, 18:37:33
- - Spawnm   Crozin - to zależy co masz na myśli mówiąc 'do...   3.10.2010, 18:59:50
- - ExPlOiT   CytatAle jeśli ExPlOiTowi zależy jedynie na segreg...   3.10.2010, 19:34:46
- - plurr   Podziel tą logikę na dodatkowe warstwy: np User (p...   3.10.2010, 20:28:48
- - Spawnm   Nie dawaj echo i zmian lokacji w klasach do tego n...   3.10.2010, 20:51:44
- - ExPlOiT   Dzięki za opinie i sugestie, a co do !, jakoś ...   3.10.2010, 22:08:15
- - dariuszp   Jeżeli to ma być CMS to nie radzę zaszywać artykuł...   5.10.2010, 20:30:28
- - ExPlOiT   Powiedzcie mi, czy to jest dobrze napisana klasa: ...   7.10.2010, 19:02:03
- - Spawnm   Nie. Po co pchasz wszystko do $this ? Nadal ...   7.10.2010, 19:06:45
- - lDoran   spawnowi chodzi chyba o addslashes, a htmlspecialc...   7.10.2010, 19:29:27
- - Crozin   O prepared statements słyszał? Nie? To niech pogoo...   7.10.2010, 19:34:32
- - ExPlOiT   Poprawiłem kod: [PHP] pobierz, plaintext <?php...   7.10.2010, 20:07:04
- - nospor   Nie addslashes a mysql_escape_string a najlepiej m...   7.10.2010, 20:23:05
- - Spawnm   Po co escapujesz skoro bindujesz? + po co w nazwac...   7.10.2010, 21:17:18
- - ExPlOiT   Tak, międzyczasie poprawiłem kod teraz już chyba ...   7.10.2010, 21:20:23
- - Spawnm   No to dalej - czemu nazwy raz zaczynasz z dużej a ...   7.10.2010, 21:25:45
- - ExPlOiT   Ok, poprawiłem wszystko Będę pisał, z małych + ca...   7.10.2010, 21:31:09
- - bl4ck_b0x   A ja mam trochę inne pytanie co do tego kodu... Je...   23.11.2010, 18:50:27
- - Mephistofeles   To zależy. Jeśli klasa odpowiada za widok, np. sza...   23.11.2010, 19:04:59


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: 26.12.2025 - 06:17