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:
<?php class Auth { private $login; private $password; private $connect; private $email; public function __construct($login, $password, $email, $connect) { $this->login = $login; $this->password = $password; $this->email = $email; $this->connect = $connect; } #Rejestracja public function Register($login, $password, $email, $connect) { #kod } #Logowanie public function Login($login, $password, $connect) { #kod } #Przypomnienie hasła public function LostPassword($email, $connect) { #kod } #Wylogowanie public function Logout() { #kod } } ?>
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
