Also es gibt verschiedene Arten von Klassen.
Es gibt Models zur Datenhaltung. Dazu gehört z.B. dein User, ein Forenbeitrag, ...
Ein Controller dient zur Ablaufsteuerung. So gibt es zum Beispiel einen der entscheidet, welche Seite angezeigt werden soll (auch Disptacher genannt), dann Formulare, Login Controller, ...
Was man auch häufig hat sind Helper Klassen, die vom Controller genutzt werden.
Für die Login Seite benötigst du also konkret den ...
Login Controller, der entscheidet welche Formulare benötigt werden.
Dieser steuert dann am besten eine Auth-Helper-Klasse, dadurch ist es möglich den Login an verschiedenen Stellen weiterzunutzen.
Beispiel findest du auch hier:
Objektorientierung mit Models
Hier mal ein kleiner Entwurf
|
PHP Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
class User extends Model {
public static function findByLogin($user, $pass) {
$row = db->fetch()
return $row ? new self($row) : null;
}
}
class AuthHelper {
public static function isLogin() {
return $_SESSION['userId'] > 0;
}
public static function doLogin($var_user, $var_pass){
$user = User::findByLogin($var_user, $var_pass);
if($user) {
$_SESSION['userId'] = $user->userid;
$_SESSION['userName'] = $user->username;
return true;
}
return false;
}
public static function doLogout() {
unset($_SESSION);
}
}
class LoginController {
public function execute() {
$isLogin = AuthHelper::isLogin();
if($isLogin) {
throw new Exception('du bist bereits angemeldet');
}
if(AuthHelper::doLogin($_POST['user'], $_POST['pass'])) {
echo "du bist jetzt angemeldet, viel spaß";
} else {
throw new Exception('falsche zugangsdaten');
}
}
}
|