Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.
<?php
/**
* Exemplu de clasă pentru gestionarea utilizatorilor
*
* Acest cod demonstrează:
* - Definirea unei clase PHP
* - Proprietăți și metode
* - Constructor
* - Getteri și setteri
* - Validare date
* - Interacțiune cu baza de date (simulată)
*/
class Utilizator {
// Proprietăți private (encapsulare)
private $id;
private $nume;
private $email;
private $varsta;
private $dataInregistrare;
/**
* Constructor - inițializează un nou utilizator
*
* @param string $nume Numele utilizatorului
* @param string $email Adresa de email
* @param int $varsta Vârsta utilizatorului
*/
public function __construct($nume, $email, $varsta) {
$this->setNume($nume);
$this->setEmail($email);
$this->setVarsta($varsta);
$this->dataInregistrare = date('Y-m-d H:i:s');
$this->id = uniqid('user_');
}
// Getteri
public function getId() {
return $this->id;
}
public function getNume() {
return $this->nume;
}
public function getEmail() {
return $this->email;
}
public function getVarsta() {
return $this->varsta;
}
public function getDataInregistrare() {
return $this->dataInregistrare;
}
// Setteri cu validare
public function setNume($nume) {
if (strlen($nume) < 2) {
throw new Exception("Numele trebuie să aibă cel puțin 2 caractere");
}
$this->nume = htmlspecialchars(trim($nume));
return $this;
}
public function setEmail($email) {
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
throw new Exception("Adresa de email invalidă");
}
$this->email = strtolower(trim($email));
return $this;
}
public function setVarsta($varsta) {
if (!is_numeric($varsta) || $varsta < 18 || $varsta > 120) {
throw new Exception("Vârsta trebuie să fie între 18 și 120 de ani");
}
$this->varsta = (int)$varsta;
return $this;
}
/**
* Salvează utilizatorul în baza de date (simulat)
*
* @return bool True dacă salvarea a reușit
*/
public function salveaza() {
// Aici ar veni codul real de salvare în baza de date
// Simulăm o salvare reușită
echo "Utilizatorul '{$this->nume}' a fost salvat cu succes!\n";
return true;
}
/**
* Afișează informațiile utilizatorului
*
* @return string
*/
public function __toString() {
return sprintf(
"ID: %s\nNume: %s\nEmail: %s\nVârstă: %d\nÎnregistrat: %s",
$this->id,
$this->nume,
$this->email,
$this->varsta,
$this->dataInregistrare
);
}
}
/**
* Clasa pentru gestionarea colecției de utilizatori
*/
class GestionarUtilizatori {
private $utilizatori = [];
public function adaugaUtilizator(Utilizator $utilizator) {
$this->utilizatori[$utilizator->getId()] = $utilizator;
return $this;
}
public function stergeUtilizator($id) {
if (isset($this->utilizatori[$id])) {
unset($this->utilizatori[$id]);
return true;
}
return false;
}
public function getUtilizator($id) {
return $this->utilizatori[$id] ?? null;
}
public function getTotiUtilizatorii() {
return $this->utilizatori;
}
public function numarUtilizatori() {
return count($this->utilizatori);
}
/**
* Caută utilizatori după nume (parțial)
*
* @param string $cautare Textul căutat
* @return array Utilizatorii găsiți
*/
public function cautaDupaNume($cautare) {
$rezultate = [];
$cautare = strtolower($cautare);
foreach ($this->utilizatori as $utilizator) {
if (strpos(strtolower($utilizator->getNume()), $cautare) !== false) {
$rezultate[] = $utilizator;
}
}
return $rezultate;
}
}
// ==================== EXEMPLU DE UTILIZARE ====================
try {
// Creăm un gestionar de utilizatori
$gestionar = new GestionarUtilizatori();
// Creăm utilizatori
$user1 = new Utilizator("Ion Popescu", "ion.popescu@email.com", 25);
$user2 = new Utilizator("Maria Ionescu", "maria.ionescu@email.com", 30);
$user3 = new Utilizator("Andrei Vasilescu", "andrei@email.com", 22);
// Adăugăm utilizatorii în gestionar
$gestionar->adaugaUtilizator($user1)
->adaugaUtilizator($user2)
->adaugaUtilizator($user3);
// Salvăm utilizatorii (simulat)
foreach ($gestionar->getTotiUtilizatorii() as $utilizator) {
$utilizator->salveaza();
}
// Afișăm toți utilizatorii
echo "\n=== LISTA UTILIZATORI ===\n";
foreach ($gestionar->getTotiUtilizatorii() as $utilizator) {
echo $utilizator . "\n";
echo str_repeat("-", 40) . "\n";
}
// Căutăm utilizatori
echo "\n=== CĂUTARE DUPA 'Ion' ===\n";
$rezultate = $gestionar->cautaDupaNume("Ion");
foreach ($rezultate as $utilizator) {
echo $utilizator->getNume() . " (" . $utilizator->getEmail() . ")\n";
}
// Statistici
echo "\n=== STATISTICI ===\n";
echo "Total utilizatori: " . $gestionar->numarUtilizatori() . "\n";
} catch (Exception $e) {
echo "Eroare: " . $e->getMessage() . "\n";
}
// ==================== FUNCȚII UTILE ====================
/**
* Funcție pentru formatarea datelor
*/
function formateazaData($data, $format = 'd/m/Y H:i') {
$timestamp = strtotime($data);
return date($format, $timestamp);
}
/**
* Funcție pentru validarea unui număr de telefon românesc
*/
function valideazaTelefon($telefon) {
// Eliminăm spațiile și caracterele speciale
$telefon = preg_replace('/[^0-9+]/', '', $telefon);
// Verificăm formatul
return preg_match('/^(\+4|0)?7[0-9]{8}$/', $telefon) === 1;
}
// Testăm funcțiile utile
echo "\n=== TEST FUNCȚII UTILE ===\n";
echo "Data formatată: " . formateazaData('2026-08-20 14:30:00') . "\n";
echo "Telefon valid (0722123456): " . (valideazaTelefon('0722123456') ? 'DA' : 'NU') . "\n";
echo "Telefon valid (0722): " . (valideazaTelefon('0722') ? 'DA' : 'NU') . "\n";
?>Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.
Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.
Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.
Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.
Hi, this is a comment.
To get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.