Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Projekt obiektowy, czy tak dobrze?
lbt
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 11.03.2009

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


Witam,
Piszę aplikację w obiektowym php. Mam gotowe części służące do odczytu i manipulacji na danych, ale mam problem z dodawaniem nowych danych (np. rejestracją użytkowników).
Nie wiem w jakiej (i czy w) klasie miało by się to dziać.
Próbowałem się czegoś dowiedzieć na pl.comp.lang.php, ale nie otrzymałem ostatecznej odpowiedzi, więc pytam tu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Do operacji na bazie danych używam statycznej klasy DataManager.

Czy następujące rozwiązanie będzie poprawne z punktu widzenia projektowania obiektowego?
Tworzę statyczną klasę Validator, która sprawdza poprawność wprowadzonych danych. W pliku rejestracja.php mam formularz. Po wysłaniu formularza sprawdzam odpowiednimi funkcjami z klasy Validator poprawność danych, a następnie funkcją np. DataManager::dodajUzytkownika dodaję użytkownika do bazy.
Wszystkie te operacje są wywoływane poza jakąkolwiek klasą, po prostu wpisane w pliku rejestracja.php.

Dzięki za pomoc
Pozdrowienia
Bartek
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
LBO
post
Post #2





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


To co opisujesz to nadal jest proceduralne programowanie, tylko, że ujęte w klasy.
Go to the top of the page
+Quote Post
lbt
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 11.03.2009

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


Też tak to właśnie widzę, dlatego pytam...
Na początku chciałem rejestrację użytkownika włożyć do klasy Użytkownik, ale żeby wykonać jakąś operację na tej klasie muszę mieć stworzony obiekt użytkownika.
Proszę o podsunięcie jakiegoś rozwiązania.
Pozdrowienia
Bartek
Go to the top of the page
+Quote Post
Foxx
post
Post #4





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

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


Dlaczego nie mógłbyś tworzyć obiektu uzytkownik przed rejestracją? To że user jest niezarejestrowany to nie znaczy, że go nie ma.
Go to the top of the page
+Quote Post
LBO
post
Post #5





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Dobrze piszesz, nie rozumiem gdzie widzisz problem.
  1. <?php
  2. $user = new User();
  3. $user->register($first_name, $last_name, $login, $password, /* etc */ );
  4. ?>


Zawsze można też klasy serwisowe/peery/managery

  1. <?php
  2. $user = userManger::register($first_name, $last_name, $login, $password, /* etc */ );
  3. ?>


To jaki sposób wybierzesz zależy tylko od Twoich preferencji i od Tego, czy to nie będzie przeszkadzać w przyszłości przy rozbudowie (nie odnoszę się tylko do Usera, ale do ogółu każdego projektu jakikolwiek w przyszłościu napiszesz).
Go to the top of the page
+Quote Post
lbt
post
Post #6





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 11.03.2009

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


W tej chwili tworzę obiekt użytkownik dając do konstruktora parametr userid.
Tworzony jest obiekt z wszystkimi właściwościami, na których mogę operować.
Jeśli całe to rozwiązanie jest błędne, to piszcie od razu.
Nie rozumiem jak mógłbym tworzyć obiekt użytkownika, który się nie zarejestrował...

Cytat(LBO @ 11.03.2009, 09:28:11 ) *
Dobrze piszesz, nie rozumiem gdzie widzisz problem.
  1. <?php
  2. $user = new User();
  3. $user->register($first_name, $last_name, $login, $password, /* etc */ );
  4. ?>


Czyli nie tworzyć użytkownika od razu pobierając dane, a robić (przy odczycie) coś na wzór?
  1. <?php
  2. $user = new User();
  3. $user->pobierzDane($login);
  4. ?>
Go to the top of the page
+Quote Post
LBO
post
Post #7





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Nie, nic nie mówię jak ma być. Sam musisz dojśc do tego jak jest Tobie najwygodniej pobierać obiekty.
Go to the top of the page
+Quote Post
Foxx
post
Post #8





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

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


Chodzi mi o to, że gdy chcesz zarejestrować użytkownika to wtedy możesz stworzyć obiekt i wykonać jego metodę rejestracja, tak jak w przykładzie ~LBO. To, że dopiero za chwilę go zarejestrujesz nie jest przeszkodą w tworzeniu obiektu.
Go to the top of the page
+Quote Post
lbt
post
Post #9





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 11.03.2009

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


Czyli, jeżeli tak mi będzie wygodnie, to rozwiązanie jest poprawne, tak?
Wielkie dzięki za taką szybką pomoc! (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Mephistofeles
post
Post #10





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Zrób sobie klasę (np. UserCollection), która będzie pobierała dane z bazy a z pobranej tablicy tworzyła Usera. W konstruktorze usera daj natomiast ładowanie z tablicy, ale z domyślnym null, żebyś mógł utworzyć pusty obiekt.
Go to the top of the page
+Quote Post

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: 25.08.2025 - 15:51