Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z praktycznym zastosowaniem programowania obiektowego
Jarod
post
Post #1





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


Dość dokładnie przerobiłem http://helion.pl/ksiazki/php5zp.htm, materiały na necie. Dużo też Was się pytałem na forum. Mam napisaną aplikacje strukturalnie. Chciałbym ją przepisać obiektowo i mam z tym problemy. Konkretnie z praktycznym zastosowaniem wiedzy teoretycznej..

Załóżmy, że mamy aplikację, która umożliwia logowanie. Jest też możliwy przydział uprawnień (tylko do odczytu lub do odczytu i zapisu) do konkretnego modułu aplikacji. Jedną z opcji aplikacji jest możliwośc wyświetlania spisu użytkowników aplikacji, z możliwością edycji danych, zmiany hasła, zmiany uprawnień, kasowania konta, itp.

Nie wiem jak się za to zabrać. Rozumiem, że pisząc aplikację obiektowo wszystko jest odwzorowane na obiekt. Czyli jeśli chciałbym wyświetlić listę użytkowników systemu, to pobieram wszystkich użytkowników z bazy, dla każdego tworzę obiekt i zapisuję do kolekcji a potem iterując ją wyświetlam na ekranie?

Jak się za to zabrać? Może macie jakieś praktyczne wskazówki? Będę wdzięczny.

Ten post edytował J4r0d 9.11.2006, 22:15:16
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
siemakuba
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


Pytanie z innej beczki:
czy dodawanie/pobieranie klasy User nie lepiej zorganizować za pomocą magicznej metody __call()?

Montujemy metodę:
  1. <?php
  2. function __call($method, $params, $return)
  3. {  
  4. $method = strtolower($method);
  5.  
  6. if (strpos($method, 'set') === 0)
  7. {
  8. $data = '_s'.ucfirst(str_replace('set', '', $method));
  9. if (isset($this->$data))
  10. {  $this->$data = $params[0];
  11. }
  12. }
  13. else if (strpos($method, 'get') === 0)
  14. {
  15. $data = '_s'.ucfirst(str_replace('get', '', $method));
  16. $return = isset($this->$data) ? $this->$data : null;
  17. }
  18. else
  19. {  $return = false;
  20. return false;
  21. }
  22.  
  23. return true;
  24. }
  25.  
  26. // wykorzystanie
  27.  
  28. $obj->setName('siemakuba');
  29. $obj->getName('siemakuba');
  30. ?>


to dość przykładowe oczywiście, ale oszczędza pisania oddzielnych metod dla poszczególnych wartość.
Używam czegoś takiego w mojej klasie AppModel i sprawdza się znakomicie. Nie wyobrażam sobie ręcznego mapowania wszystkich właściwości poszczególnych klas potomnych modelu na odpowiadające im tabele w bazie danych.

pozdr.
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: 8.10.2025 - 03:45