47 lines
994 B
PHP
47 lines
994 B
PHP
<?php
|
|
namespace Blog\Model;
|
|
|
|
use Blog\Entity\User;
|
|
use Blog\Database\Database;
|
|
use PDO;
|
|
|
|
/**
|
|
* Modellklasse für Benutzer-bezogene Datenbankoperationen.
|
|
*/
|
|
class UserModel {
|
|
/**
|
|
* @var PDO Die Datenbankverbindung.
|
|
*/
|
|
private $db;
|
|
|
|
/**
|
|
* Konstruktor. Stellt die Datenbankverbindung her.
|
|
*/
|
|
public function __construct() {
|
|
$this->db = Database::getConnection();
|
|
}
|
|
|
|
/**
|
|
* Holt einen Benutzer anhand des Benutzernamens.
|
|
*
|
|
* @param string $username Der Benutzername.
|
|
* @return User|null Das User-Objekt oder null, falls nicht gefunden.
|
|
*/
|
|
public function getUserByUsername(string $username):?User {
|
|
$stmt = $this->db->prepare(<<<SQL
|
|
SELECT id, username, password
|
|
FROM users
|
|
WHERE username = :username
|
|
LIMIT 1
|
|
SQL);
|
|
$stmt->bindParam(':username', $username);
|
|
$stmt->execute();
|
|
|
|
$row = $stmt->fetchObject();
|
|
if(!$row)
|
|
return null;
|
|
|
|
return new User($row->id, $row->username, $row->password);
|
|
}
|
|
}
|