Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [OOP] 'Budowa interfejsów bazodanowych'.
MagnuM
post
Post #1





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 7.05.2004
Skąd: Jelenia Góra

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


Witam,
przeczytałem artykuł ze strony głównej pt. 'Budowa interfejsów bazodanowych' i zaintrygowała mnie kwestia dziwnych funkcji zawartych w umieszczonych tam klasach. Z resztą widziałem podobne w innych artykułach.

Przytocze tutaj taki przykład z sekcji artykułu zatytułowanej 'Składamy wszystko w całość'.

  1. <?php
  2. /* Notes:
  3.    $db - instance of ADOdb connection object.
  4.    $user - instance of the User DB Interface
  5.    $topic - instance of the Topic DB Interface
  6. */
  7. $db->StartTrans();
  8.  
  9. // update the user's total # of posts
  10. $user->setNumPosts($user->getNumPosts() + 1); // PRZYKŁAD
  11. $user->submit($db); // PRZYKŁAD
  12.  
  13. // update the topics # of messages
  14. $topic->setNumMessages($topic->getNumMessage() + 1);
  15. $topic->submit($db);
  16.  
  17. // create the new message
  18. $message = new Message();
  19. $message->setTopicID($topic->getTopicID());
  20. $message->setTopic($_POST['userTopic']);
  21. $message->setMessage($_POST['message']);
  22. $message->setPoster($user->getUserID());
  23. $message->submit($db);
  24.  
  25. $db->CompleteTrans();
  26.  
  27. ?>


Jaki jest sens używania tego typu funkcji jak tutaj: setNumPosts(), getNumPosts(), submit() ?
Wydaje mi się że kod:

  1. <?php
  2. $user->setNumPosts($user->getNumPosts() + 1);
  3. $user->submit($db);
  4. ?>


Można z powodzeniem zapisać tak:
  1. <?php
  2. $user->numPosts += 1; // przyjmujac ze w konstruktorze do zmiennej $numPosts wczytywana jest ilsoc posto
    w uzytkownika
  3. ?>


A później w destruktorze wysyłać do bazy zgromadzone przez cały czas działania skryptu dane.

Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
LBO
post
Post #2





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

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


Settery udostepniają mozliwośc np. walidacji danych przed dalszymi akcjami np.:
  1. <?php
  2. $client->setEmail('name@domain.com');
  3. ?>

a definicji klasy:
  1. <?php
  2. public function setEmail($email)
  3. {
  4. if (Filter::isEmail($email) !== true) {
  5. throw new ClientException('e-mail is not valid');
  6. };
  7. }
  8. ?>


Ten post edytował LBO 4.07.2006, 21:58:40
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: 6.10.2025 - 00:07