Hallo,
ich arbeite derzeit mit PHP und habe vor das Ganze vor allem objektorientiert und sauber zu programmieren. Deshalb habe ich nun dazu einige Fragen.
Bei mir können sich z.B. User registrieren. Bisher mache ich das folgendermaßen, nachdem das Formular abgeschickt wurde:
Die Prüfung, ob Vorname/Nachname gefüllt sind und ob die E-Mail überhaupt eine gültige E-Mail Adresse ist, mache ich nun in der Klasse:
Meine Frage ist nun, in Java würde man eher mit Getter/Settern arbeiten, also vermutlich so:
Aber wie löse ich dieses in PHP? Heißt es auch hier generell: Sowenig Logik wie möglich in die Klasse? D.h. die Validierung der Daten und die Abfrage, ob die Validierung erfolgreich war hat eigentlich auch nichts in der Klasse zu suchen, oder?
Danke!
ich arbeite derzeit mit PHP und habe vor das Ganze vor allem objektorientiert und sauber zu programmieren. Deshalb habe ich nun dazu einige Fragen.
Bei mir können sich z.B. User registrieren. Bisher mache ich das folgendermaßen, nachdem das Formular abgeschickt wurde:
PHP:
$user = new user();
$user->addUser($_POST['vorname'], $_POST['nachname'], $_POST['email']);
Die Prüfung, ob Vorname/Nachname gefüllt sind und ob die E-Mail überhaupt eine gültige E-Mail Adresse ist, mache ich nun in der Klasse:
PHP:
class user {
var $vorname, $nachname, $email;
public function addUser($vorname, $nachname, $email) {
global $dbConnect;
$this->vorname = mysql_real_escape_string($vorname);
$this->nachname = mysql_real_escape_string($nachname);
$this->email = mysql_real_escape_string($email);
$errorsReported = $this->validateUserinput();
if ($errorsReported == false) {
$upassword = md5($this->createhash(7));
$dbConnect->query("INSERT INTO "._USERS." VALUES ('','$this->nachname', '$this->vorname', '$upassword','$this->email')");
}
Meine Frage ist nun, in Java würde man eher mit Getter/Settern arbeiten, also vermutlich so:
PHP:
$user = new user();
$user->setName($_POST['nachname']);
$user->setVorname($_POST['vorname']);
$user->setEmail($_POST['email']);
$user->setPassword($hash=new hash());
$user->persist();
Aber wie löse ich dieses in PHP? Heißt es auch hier generell: Sowenig Logik wie möglich in die Klasse? D.h. die Validierung der Daten und die Abfrage, ob die Validierung erfolgreich war hat eigentlich auch nichts in der Klasse zu suchen, oder?
Danke!
Zuletzt bearbeitet: