Doctrină (PHP)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Doctrină
software
Tip Software de baze de date
Data primei versiuni 13 aprilie 2006
Ultima versiune 2.9.3 (14 iunie 2021)
Sistem de operare Multiplatform
Limba PHP
Licență Licență MIT
( licență gratuită )
Site-ul web www.doctrine-project.org/

Proiectul Doctrină (sau pur și simplu Doctrină ) este un set de biblioteci PHP axate în principal pe furnizarea de servicii de persistență și funcționalități conexe. Principalul său design este un ORM și un strat de abstractizare a bazei de date pe care este construit.

Una dintre caracteristicile cheie ale Doctrinei este abilitatea de a scrie interogări în baza de date în Doctrine Query Language (DQL), un dialect SQL orientat pe obiecte.

Istorie

Doctrina a fost începută de Konsta Vesterinen, cunoscut și sub numele de zYne-. Prima angajare a proiectului a fost făcută pe 13 aprilie 2006 și pe măsură ce proiectul a devenit mai matur, a fost adoptat treptat de alte proiecte. În scurt timp, comunitatea a fost activă, iar dezvoltarea a primit contribuții regulate de la, printre altele, proiectul Google Summer of Code .

Doctrina 1.0.0 a fost lansată la 1 septembrie 2008. [1]

Prima versiune stabilă a Doctrinei 2.0 a fost lansată pe 22 decembrie 2010, după 2,5 ani de dezvoltare dedicată, care a început la începutul anului 2008. [2]

Caracteristici

O caracteristică a Doctrinei este nivelul scăzut de configurare necesar pentru a începe un proiect. Doctrina poate genera clase de obiecte dintr-o bază de date existentă, iar programatorul poate specifica relații și poate adăuga funcționalități personalizate claselor generate. Nu este nevoie să generați sau să întrețineți scheme complexe de baze de date XML , așa cum se vede în multe alte cadre.

O altă caracteristică cheie a Doctrinei este capacitatea de a scrie opțional interogări de baze de date într-un dialect SQL orientat pe obiecte numit DQL (Doctrine Query Language), inspirat din limbajele HQL ale Hibernate . Alternativ, clasa QueryBuilder (corespunzătoare Doctrine_Query din Doctrine 1.x) vă permite să creați interogări printr-o interfață fluidă. Aceste interfețe oferă dezvoltatorilor alternative puternice la SQL, mențin flexibilitatea și le permit să schimbe cu ușurință baza de date utilizată, fără a necesita duplicarea codului.

Cu toate acestea, nu este întotdeauna necesar să scrieți interogări în mod explicit, deoarece Doctrina se alătură și preia automat obiectele conexe. Puteți scrie cu ușurință proiecte mici fără a scrie nicio întrebare.

Alte caracteristici:

  • suport pentru cârlige (metode care pot valida sau modifica intrările și ieșirile bazei de date) și ascultătorii de evenimente, pentru a structura logica de afaceri;
  • agregarea coloanelor după moștenire (obiecte similare pot fi stocate într-un tabel de baze de date, cu un tip de coloană care specifică subtipul obiectului particular, subclasa corectă este întotdeauna returnată atunci când rulează o interogare);
  • un cadru de cache , care utilizează diferite backend-uri, cum ar fi memcached , SQLite sau APC;
  • Tranzacții ACID;
  • migrații;
  • o funcție de „compilare” pentru a combina mai multe fișiere PHP într-unul singur, pentru a evita scăderile de performanță întâlnite de obicei la includerea mai multor fișiere PHP.

Exemple

Entitățile din Doctrină sunt obiecte PHP simple care conțin proprietăți pentru a persista. O proprietate este o variabilă entitate, care este salvat în și extrase dintr - o bază de date, prin intermediul unor funcții de cartografiere a datelor doctrinei, folosind un Manager de entitate (o punere în aplicare a „cartograf de date“ model ):

 $ utilizator = Utilizator nou ();
 $ utilizator -> nume = "Ioan" ;
 $ utilizator -> parolă = "rossi" ;
 $ entityManager -> persistă ( $ utilizator );
 $ entityManager -> flush ();
 echo "Utilizatorul cu ID $ user-> id a fost salvat." ;

Vechea versiune a Doctrinei (1.x) urma modelul „înregistrării active” pentru lucrul cu date, prin care o clasă corespunde unui tabel de baze de date. De exemplu, pentru a crea un nou obiect „Utilizator” într-o bază de date, puteți utiliza următorul cod PHP:

 $ utilizator = Utilizator nou ();
 $ utilizator -> nume = "Ioan" ;
 $ utilizator -> parolă = "rossi" ;
 $ utilizator -> salvare ();
 echo "Utilizatorul cu ID $ user-> id a fost salvat." ;

Influențe

Doctrina a fost influențată de zeci de proiecte și de mulți oameni diferiți. Cele mai mari influențe au fost Java Hibernate ORM și Ruby on Rails ActiveRecord. Ambele soluții ORM au implementat o soluție completă în Java și, respectiv, în Ruby . Scopul proiectului Doctrine este de a construi o soluție la fel de puternică pentru PHP pentru site-urile web încărcate puternic, care trebuie să reziste unui flux constant de vizitatori. Doctrina poate fi utilizată pentru a îmbunătăți performanța unor astfel de site-uri web.

Notă

Elemente conexe

linkuri externe