Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dylematy początkującego, konstruktor vs parametry metody
bl4ck_b0x
post
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 21.11.2006

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


Witam.

Mam pewien dylemat dotyczący konstruktora i parametrów metody.
Mam klasę Auth a w niej konstruktor który za parametry przyjmuje $login, $password, $email, $connect. Rozmawiając z moderatorem tego forum (blooregard) powiedział mi, że najlepiej gdyby konstruktor był wywoływany już przy utworzeniu obiektu. Bo wtedy wiadomo o jakie zmienne chodzi np. $this->login = $login

Ale może pokażę na przykładzie:
  1. <?php
  2. class Auth
  3. {
  4. private $login;
  5. private $password;
  6. private $connect;
  7. private $email;
  8.  
  9. public function __construct($login, $password, $email, $connect)
  10. {
  11. $this->login = $login;
  12. $this->password = $password;
  13. $this->email = $email;
  14. $this->connect = $connect;
  15. }
  16.  
  17. #Rejestracja
  18. public function Register($login, $password, $email, $connect)
  19. {
  20. #kod
  21. }
  22.  
  23. #Logowanie
  24. public function Login($login, $password, $connect)
  25. {
  26. #kod
  27. }
  28.  
  29. #Przypomnienie hasła
  30. public function LostPassword($email, $connect)
  31. {
  32. #kod
  33. }
  34.  
  35. #Wylogowanie
  36. public function Logout()
  37. {
  38. #kod
  39. }
  40. }
  41.  
  42. ?>


Problem polega na tym, że wywołując konstruktor muszę mieć przekazywane jako parametry tego konstruktora, ale co jeśli dopiero chcę utworzyć obiekt i jeszcze nic nie mam a dopiero później są przekazywane jakieś wartości? Mówię tu o późniejszym wykorzystaniu metod np. Login gdzie potrzebuję $login, $password, $connect. Najpierw wypadałoby wywołać obiekt klasy, a następnie później wywoływać potrzebne metody. Klasa bez konstruktora jest dobrą klasą? Czy umieszczanie na początku każdej metody $this->login = $login; to dobre rozwiązanie w momencie gdy usunę konstruktor? Bo pisząc kod przypomina to trochę pisanie pisanie najzwyklejszych funkcji oprawionych w obiektówkę...

Dopiero zaczynam z obiektowym PHP i jeśli możecie to proszę o jak najprostsze wyjaśnianie pewnych rzeczy (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bl4ck_b0x
post
Post #2





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 21.11.2006

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


Mam jeszcze pytanie odnośnie sposobu w którym przekazuje się wszystko do konstruktora (a nie poprzez parametry metod). Co jeśli będę miał skrypt tylko logowania i chcę wykorzystać metodę logowania a tam muszę podać tylko login, hasło i połączenie. Konstruktor wywali błąd bo potrzebne są 4 parametry, w tym email który podczas logowania nie będzie wymagany. Więc co teraz? Wychodzi na to, że wtedy nie używać konstruktora... czy może macie jakieś inne pomysły?
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: 13.10.2025 - 13:11