- Stefanescu Mihai a postat in Paginare in PHP
- johhny a postat in Paginare in PHP
- Stefanescu Mihai a postat in Cum pot afisa eroarea cand utilizatorul a scris un username gresit sau o parola gresita?
- madalin a postat in Cum pot afisa eroarea cand utilizatorul a scris un username gresit sau o parola gresita?
- Stefanescu Mihai a postat in Featureuri site
Active Record
Design pattern-ul Active Record este un design pattern des intalnit in programarea orientata pe obiecte pentru crearea, citirea, modificarea si stergerea datelor din baza de date.
In acest pattern, fiecare inregistrare din baza de date este reprezentata de un obiect, iar metodele de pe acest obiect sunt folosite la executarea actiunilor de pe inregistrare. Acest pattern ofera un mod mai intuitiv de a interactiona cu baza de date.
Hai sa vedem cum functioneaza acest pattern in practica.
Prima data trebuie sa ne definim o clasa ce reprezinta o inregistrare din baza de date. Aceasta clasa trebuie sa aiba ca si proprietati coloanele din tabela dorita si metodele cu care sa faca actiunile dorite pe acele proprietati.
class User { private $id; private $username; private $email; public function __construct($id, $username, $email) { $this->id = $id; $this->username = $username; $this->email = $email; } public function save() { // aici va fi salvarea in baza de date } public function delete() { // aici va fi stergerea din baza de date } // atat timp cat ave proprietati private trebuie sa avem si getteri/setteri pentru ele }
Pentru a interactiona cu baza de date avem nevoie de o instanta a obiectului, de exemplu pentru a crea un nou user putem face:
$user = new User(1,'mihai','[email protected]'); $user->save()
Sau pentru a cauta un anumit user ceva de genul:
$user = new User(); $user->findBy(['email' => $email]);
Zic ceva de genul, pentru ca aici am vazut mai multe abordari, cum ar fi si
$user = User::findBy(['email' => $email]);
Modul de implementare tine de fiecare persoana, cum crede ca este mai ok pentru proiectul respectiv.
Folosind acest design pattern, Active Record encapsulezi operatiile cu baza de date in obiecte, facandu-ti codul mai intuitiv si usor de inteles. In Unele cazuri chiar iti poate simplifica codul, facandu-l mai usor de intretinut. Totusi, este foarte important de mentionat ca acest design pattern poate duce la cod foarte dependent de baza de date (tight coupled) facand dificila o schimbare de schema fara a schimba si codul.
Comentarii
Inca nu au fost postate comentarii, fii primul care posteaza un comentariu!