Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> class user() czyli oop i organizacja użytkowników
ShadowD
post
Post #1





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

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


Jestem ciekaw jak Waszym zdaniem powinna wyglądać class "user()" reprezentująca użytkownika, jak stworzyć "fabrykę" takich użytkowników i jak ogólnie ogarnąć ten temat.

Z ogólnych zasad można by wywnioskować coś mniej więcej takiego:

  1. <?php
  2.  
  3. class User
  4. {
  5. private $_nick;
  6. private $_pass;
  7. private $_email;
  8.  
  9. public function getNick() {}
  10. public function setNick() {}
  11.  
  12. public function getPass() {}
  13. public function setPass() {}
  14.  
  15. public function getEmail() {}
  16. public function setEmail() {}
  17.  
  18. public function delate() {}
  19. }
  20.  
  21. ?>


To jest moja wizja i może być mocno błędna, ale zakładam że Instancja tej klasy będzie reprezentował jednego użytkownika.

I teraz jeśli w bazie mamy dane o użytkownikach i chcieli byśmy stworzyć taką instancję to w jaki sposób się do tego zabrać?

Ja tutaj widzę jakąś klasę users() (nie wiem jak ją nazwać - "fabryką"?), która miała by metody do wyszukiwania użytkowników i coś w rodzaju getUser(), ale czy taka wizja jest poprawna czy może jesteście w sanie naprostować mój światopogląd lub dać jakiś przykład jak to powinno wyglądać? Jak w takim przypadku tworzyć nowego użytkownika np. podczas rejestracji (czyli $user = new user() i teraz co? $uses->addUser($user)) a potem go zapisać?

Przykład na użytkownikach, ale sprawa jest identyczna do wpisów czy stron na blogach, chciał bym mieć jeden wypracowany szablon, a przy natłoku różnych sposobów z sieci sam już nie wiem jak to prawidłowo zapisać.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ShadowD
post
Post #2





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

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


@Crozin z tego co rozumiem potwierdzasz to co napisałem, ale nie rozwiązuje to jakoś moich pytań, może po prostu za głupi jestem i nie potrafię sobie tego przetłumaczyć. Już od kilku dni siedzę nad tym jak to ładnie wszystko wyszykować i po wielu początkach od zera najkorzystniej wygląda coś w rodzaju:

class user() - instancja użytkownika, ma zmienne (login, pass, email), metody do ich zmiany takie jak setNick($nick), usuwanie usera del() (korzysta z pliku modelu do usunięcia z bazy) i chyba tyle.
class users() - reprezentuje tak jak by zbiór użytkowników ma metody typu addUser(user ...), sprawdzanie czy dany nick jest wolny(?), wyszukiwanie w bazie użytkownika i pobieranie go (return new user())

I w takim wyglądzie mam mieszane myśli do:
- logowanie - nie wiem jak je opatentować wogóle, przydała by się kolejna klasa czyż nie?
- rejestracja - jest poprzez addUser(user ...)
- może usuwanie użytkownika powinno być w klasie users() jako metoda del(user ...) przyjmująca instancję user? - To trochę bez sensu bo mając tylko id muszę najpierw tworzyć instancję user co jest równoznaczne z pobieraniem całego kompletu informacji na jego temat taka nadmiarowa praca...

Pracuję w zend to wszystko dał bym jako biblioteki i korzystał z nich w akcjach. Wiem że strasznie mieszam z user i users, ale nie wiem jak to ładniej opisać.

EDIT:
Kolejnym pytaniem jest czy metody typu setNick moją od razu zapisywać dane w mysql, czy też poprzez $users->saveChange(user ...), a może po prostu poprzez $user->save()?

I czy przy takich założeniach klasa users powinna być modelem - takim typowym modelem z mvc? (W zand w katalogu models)

Edit2:
Pogrubione przemyślenia. :-)

Ten post edytował ShadowD 24.08.2012, 00:25:24
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: 17.10.2025 - 17:00