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 od pół roku uczę się zend'a i nie zmienię tego typu, zmigruję tylko na v2 jak tylko się pojawi jakaś stabilna, długo myślałem nad fw i za daleko już doszedłem by coś zmieniać szczególnie że moja aplikacja jest już dość rozwinięta i jedyne co mi zostało to przepisać od nowa takie bajki jak owy user, news itd. na chwile obecną całość jest w kontrolerach poupychana bez żadnej warstwy pomiędzy co jest imo złe i daje mi mocno po głowie.

Zaznaczasz że nie korzystam z gotowych rozwiązań, korzystam tylko nie koniecznie wiem jak je połączyć z taką klasą jak omawiana user(), takie ficzery jak Zend_Auth, Zend_Form i powiązane wykorzystuje z chęcią. I ogólnie widzę to tak że form nie ma nic wspólnego z żadną z klas o których tutaj mówimy. Krótki przykład - mam moduł user, w nim kontroler user i akcję addUser, tak pobieram forma przekazuję go do widoku po wysłaniu forma akcja zmienia się na addUserProcessing i tutaj dokonywana jest walidacja przy użyciu Zend_Form a już pewnymi danymi uzupełniam moją klasę user(), nie wiem czy poprawnie ale właśnie tak to widzę. :-) Więc pomijam takie aspekty jak właśnie walidacja danych bo to robi sam fw.

Myślał bym idąc Twoim tokiem myślenia by zrobić coś takiego, wszystko to osobne klasy:
- logowanie - tutaj wszystko co zend daje w kontrolerze jednym bez mojej ramki na to
- user - reprezentuje usera
- My_Model_Users - klasa do której przekazuje instancje user w celu dodania / usunięcia użytkownika.

Z tego wynika że biblioteką której nie mam to user i metody w module, a reszty dostarczy mi fw.

I teraz przydało by się coś do rejestracji, wnioskuję że proponujesz mi kolejną klasę która zajmie się tą czynnością, a nie lepiej stworzyć po prostu pusty obiekt user i dodać do bazy za pomocą My_Model_Users -> add(user ...)?

Ważnym pytanie jest jak mają być aktualizowane dane rozumiem że wprowadzam zmiany w user i w My_Model_Users -> up(user ...)?

Dzięki wielkie za tracenie na mnie czasu, po prostu czytam czytam i próbuję odnaleźć dla siebie jakaś drogę by to pojąć połączyć z narzędziami zend'a i by to nie tyle działało co było poprawne w sztuce programowania, bo napisać byle jak to każdy umie. :-)

Ten post edytował ShadowD 24.08.2012, 01:55:04
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: 5.10.2025 - 13:23