initial commit

This commit is contained in:
greggy
2025-10-06 23:10:59 +02:00
commit ad46abd2ba
62 changed files with 4332 additions and 0 deletions

View File

@@ -0,0 +1,179 @@
<?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);