180 lines
4.2 KiB
PHP
180 lines
4.2 KiB
PHP
<?php
|
|
// example-repository-usage.php - Beispiele für die Verwendung des UserRepository
|
|
|
|
require_once 'bootstrap.php';
|
|
|
|
use Entity\User;
|
|
use Repository\UserRepository;
|
|
|
|
/** @var UserRepository $userRepo */
|
|
$userRepo = $entityManager->getRepository(User::class);
|
|
|
|
// Beispiel 1: Neuen User erstellen und speichern
|
|
function createUser($userRepo, $username, $email, $password)
|
|
{
|
|
$user = new User();
|
|
$user->setUsername($username);
|
|
$user->setEmail($email);
|
|
$user->setPassword(password_hash($password, PASSWORD_DEFAULT));
|
|
|
|
$userRepo->save($user);
|
|
|
|
echo "User erstellt mit ID: " . $user->getId() . "\n";
|
|
return $user;
|
|
}
|
|
|
|
// Beispiel 2: User nach ID finden
|
|
function getUserById($userRepo, $id)
|
|
{
|
|
$user = $userRepo->findById($id);
|
|
|
|
if ($user) {
|
|
echo "User gefunden: " . $user->getUsername() . "\n";
|
|
} else {
|
|
echo "User nicht gefunden\n";
|
|
}
|
|
|
|
return $user;
|
|
}
|
|
|
|
// Beispiel 3: User nach Username finden
|
|
function getUserByUsername($userRepo, $username)
|
|
{
|
|
$user = $userRepo->findByUsername($username);
|
|
|
|
if ($user) {
|
|
echo "User gefunden: " . $user->getEmail() . "\n";
|
|
} else {
|
|
echo "User nicht gefunden\n";
|
|
}
|
|
|
|
return $user;
|
|
}
|
|
|
|
// Beispiel 4: User nach Email finden
|
|
function getUserByEmail($userRepo, $email)
|
|
{
|
|
$user = $userRepo->findByEmail($email);
|
|
|
|
if ($user) {
|
|
echo "User gefunden: " . $user->getUsername() . "\n";
|
|
} else {
|
|
echo "User nicht gefunden\n";
|
|
}
|
|
|
|
return $user;
|
|
}
|
|
|
|
// Beispiel 5: Alle User abrufen
|
|
function getAllUsers($userRepo)
|
|
{
|
|
$users = $userRepo->findAllUsers();
|
|
|
|
echo "Anzahl User: " . count($users) . "\n";
|
|
foreach ($users as $user) {
|
|
echo "- " . $user->getUsername() . " (" . $user->getEmail() . ")\n";
|
|
}
|
|
|
|
return $users;
|
|
}
|
|
|
|
// Beispiel 6: Prüfen ob Username existiert
|
|
function checkUsernameExists($userRepo, $username)
|
|
{
|
|
$exists = $userRepo->usernameExists($username);
|
|
|
|
echo "Username '$username' existiert: " . ($exists ? 'Ja' : 'Nein') . "\n";
|
|
|
|
return $exists;
|
|
}
|
|
|
|
// Beispiel 7: Prüfen ob Email existiert
|
|
function checkEmailExists($userRepo, $email)
|
|
{
|
|
$exists = $userRepo->emailExists($email);
|
|
|
|
echo "Email '$email' existiert: " . ($exists ? 'Ja' : 'Nein') . "\n";
|
|
|
|
return $exists;
|
|
}
|
|
|
|
// Beispiel 8: User suchen (LIKE)
|
|
function searchUsers($userRepo, $search)
|
|
{
|
|
$users = $userRepo->searchByUsername($search);
|
|
|
|
echo "Gefundene User für '$search': " . count($users) . "\n";
|
|
foreach ($users as $user) {
|
|
echo "- " . $user->getUsername() . "\n";
|
|
}
|
|
|
|
return $users;
|
|
}
|
|
|
|
// Beispiel 9: User zählen
|
|
function countAllUsers($userRepo)
|
|
{
|
|
$count = $userRepo->countUsers();
|
|
|
|
echo "Gesamtanzahl User: $count\n";
|
|
|
|
return $count;
|
|
}
|
|
|
|
// Beispiel 10: User nach Erstellungsdatum finden
|
|
function getRecentUsers($userRepo, $daysAgo = 7)
|
|
{
|
|
$date = new DateTime();
|
|
$date->modify("-$daysAgo days");
|
|
|
|
$users = $userRepo->findByCreatedAfter($date);
|
|
|
|
echo "User erstellt in den letzten $daysAgo Tagen: " . count($users) . "\n";
|
|
foreach ($users as $user) {
|
|
echo "- " . $user->getUsername() . " (" . $user->getCreatedAt()->format('Y-m-d H:i:s') . ")\n";
|
|
}
|
|
|
|
return $users;
|
|
}
|
|
|
|
// Beispiel 11: User aktualisieren
|
|
function updateUser($userRepo, $id, $newEmail)
|
|
{
|
|
$user = $userRepo->findById($id);
|
|
|
|
if ($user) {
|
|
$user->setEmail($newEmail);
|
|
$userRepo->save($user);
|
|
echo "User aktualisiert\n";
|
|
} else {
|
|
echo "User nicht gefunden\n";
|
|
}
|
|
}
|
|
|
|
// Beispiel 12: User löschen
|
|
function deleteUser($userRepo, $id)
|
|
{
|
|
$user = $userRepo->findById($id);
|
|
|
|
if ($user) {
|
|
$userRepo->delete($user);
|
|
echo "User gelöscht\n";
|
|
} else {
|
|
echo "User nicht gefunden\n";
|
|
}
|
|
}
|
|
|
|
// Verwendungsbeispiele (auskommentiert):
|
|
// createUser($userRepo, 'john_doe', 'john@example.com', 'secret123');
|
|
// getUserById($userRepo, 1);
|
|
// getUserByUsername($userRepo, 'john_doe');
|
|
// getUserByEmail($userRepo, 'john@example.com');
|
|
// getAllUsers($userRepo);
|
|
// checkUsernameExists($userRepo, 'john_doe');
|
|
// checkEmailExists($userRepo, 'john@example.com');
|
|
// searchUsers($userRepo, 'john');
|
|
// countAllUsers($userRepo);
|
|
// getRecentUsers($userRepo, 7);
|
|
// updateUser($userRepo, 1, 'newemail@example.com');
|
|
// deleteUser($userRepo, 1);
|