Doctrine (PHP)

Doctrine
software
GenereSoftware per basi di dati
Data prima versione13 aprile 2006
Ultima versione3.2.1 (27 giugno 2024)
Sistema operativoMultipiattaforma
LinguaggioPHP
LicenzaLicenza MIT
(licenza libera)
Sito webwww.doctrine-project.org/

Il progetto Doctrine (o semplicemente Doctrine) è un insieme di librerie PHP principalmente focalizzata sul fornire servizi di persistenza e funzionalità correlate. Il suo progetto principale è un ORM e un livello di astrazione del database su cui è costruito.

Una delle caratteristiche fondamentali di Doctrine è la possibilità di scrivere query al database in Doctrine Query Language (DQL), un dialetto orientato agli oggetti di SQL.

Storia

Doctrine è stato avviato da Konsta Vesterinen, noto anche come zYne-. Il primo commit del progetto è stato fatto il 13 aprile 2006 e quando il progetto è diventato più maturo, è stato adottato via via da altri progetti. In poco tempo, la comunità era attiva e lo sviluppo riceveva contributi regolari, tra gli altri, dal progetto Google Summer of Code.

Doctrine 1.0.0 è stato rilasciato il 1º settembre 2008.[1]

La prima versione stabile di Doctrine 2.0 è stata pubblicata il 22 dicembre 2010, dopo 2,5 anni di sviluppo dedicato, partito all'inizio del 2008.[2]

Caratteristiche

Una caratteristica di Doctrine è il basso livello di configurazione necessario per avviare un progetto. Doctrine può generare classi di oggetti da un database esistente e il programmatore può quindi specificare le relazioni e aggiungere funzionalità personalizzate alle classi generate. Non vi è alcuna necessità di generare o mantenere complessi schemi XML di database, come visto in molti altri framework.

Un'altra caratteristica fondamentale di Doctrine è la capacità di scrivere, in modo facoltativo, query di database in un SQL dialetto, orientato agli oggetti, chiamato DQL (Doctrine Query Language), ispirato al linguaggi HQL di Hibernate. In alternativa, la classe QueryBuilder (corrispondente a Doctrine_Query in Doctrine 1.x) permette di creare query attraverso un'interfaccia fluida. Queste interfacce forniscono agli sviluppatori potenti alternative a SQL, mantengono flessibilità e permettono di cambiare facilmente il database usato, senza richiedere alcuna duplicazione del codice.

Tuttavia non è sempre necessario scrivere esplicitamente le query, poiché Doctrine esegue join e fetch di oggetti correlati in modo automatico. Si possono facilmente scrivere piccoli progetti senza scrivere alcuna query.

Altre caratteristiche:

  • supporto per hook (metodi che possono convalidare o modificare input e output del database) e ascoltatori di eventi, per strutturare la logica di business;
  • aggregazione delle colonne per ereditarietà (oggetti simili possono essere memorizzati in una tabella del database, con un tipo di colonna che specifica il sottotipo di particolare oggetto, la sottoclasse corretta viene sempre restituita quando si esegue una query);
  • un framework di caching, che usa diversi backend, come memcached, SQLite o APC;
  • transazioni ACIDe;
  • migrazioni;
  • una funzione di "compilazione" per combinare più file PHP in uno solo, per evitare cali di prestazioni solitamente riscontrati quando si includono molti file PHP.

Esempi

Le entità in Doctrine sono semplici oggetti PHP che contengono proprietà da persistere. Una proprietà è una variabile dell'entità, che viene salvata in e recuperata da un database, tramite le funzionalità di mappatura dei dati di Doctrine, usando un Entity Manager (un'implementazione del pattern "data mapper"):

 $utente = new Utente();
 $utente->nome = "Mario";
 $utente->password = "rossi";
 $entityManager->persist($utente);
 $entityManager->flush();
 echo "L'utente con id $utente->id è stato salvato.";

La vecchia versione di Doctrine (la 1.x) seguiva il pattern "active record" per lavorare con i dati, per cui una classe corrisponde a una tabella di database. Per esempio, per creare un nuovo oggetto "Utente" in un database, si potrebbe utilizzare il seguente codice PHP:

 $utente = new Utente();
 $utente->nome = "Mario";
 $utente->password = "rossi";
 $utente->save();
 echo "L'utente con id $utente->id è stato salvato.";

Influenze

Doctrine è stato influenzato da decine di progetti e molte persone diverse. Le maggiori influenze sono stati l'ORM Hibernate di Java e ActiveRecord di Ruby on Rails. Entrambe queste soluzioni ORM hanno implementato una soluzione completa in Java e Ruby rispettivamente. Lo scopo del progetto Doctrine è quello di costruire una soluzione altrettanto potente per PHP per i siti web ad alto carico, che devono sopportare un flusso costante di visitatori. Doctrine può essere utilizzato per migliorare le prestazioni di tali siti web.

Note

Voci correlate

Collegamenti esterni

Read other articles:

WatcherPoster promosiHangul왓쳐 GenreCerita seruPembuatStudio DragonDitulis olehHan Sang-woonSutradaraAhn Gil-hoPemeranHan Suk-kyuSeo Kang-joonKim Hyun-jooNegara asalKorea SelatanBahasa asliKoreaJmlh. episode16ProduksiProduser eksekutifJinnie ChoiKim Young-kyuPengaturan kameraSingle-cameraRumah produksiStudio DragonDistributorOCNRilis asliJaringanOCNFormat gambar1080i (HDTV)Format audioDolby DigitalRilis6 Juli –25 Agustus 2019 Watcher (Hangul: 왓쳐; RR: Watcheo; digayakan sebagai WATC…

Katedral Basilika Minor Bunda dari Altagracia Ini adalah daftar basilika di Republik Dominika. Katolik Daftar basilika Gereja Katolik di Republik Dominika[1]: Katedral Basilika Minor Bunda dari Altagracia Basilika Katedral Metropolitan Santa Maria dari Inkarnasi (Katedral Primasial Amerika), Santo Domingo Lihat juga Gereja Katolik Roma Gereja Katolik di Republik Dominika Daftar katedral di Republik Dominika Daftar basilika Referensi ^ Basilika di seluruh dunia lbsDaftar basilika di Ameri…

Caitlyn JennerJenner di acara Hari Hak Asasi Manusia di Perserikatan Bangsa-Bangsa, 10 Desember 2015LahirWilliam Bruce Jenner28 Oktober 1949 (umur 74)New York, Amerika SerikatTempat tinggalMalibu, California, Amerika SerikatAlmamaterUniversitas GracelandTahun aktif1970-sekarangKekayaan bersihUS$100 juta (perkiraan 2014)[1][2]Televisi Keeping Up with the Kardashians I Am Cait Partai politikRepublikanSuami/istri Chrystie Crownover ​ ​(m. …

Hospitals in New York City Hospital in New York, United StatesColer Specialty HospitalNYC Health + HospitalsGeographyLocation900 Main Street, New York, New York, United StatesCoordinates40°46′13″N 73°56′32″W / 40.77028°N 73.94222°W / 40.77028; -73.94222OrganizationFundingPublic hospitalTypeSpecialistNetworkNYC Health + HospitalsServicesBeds1,025[1]SpecialityChronic care, physical rehabilitation, geriatrics, HIV/AIDS, Alzheimer's careHistoryOpened1939 (…

Об экономическом термине см. Первородный грех (экономика). ХристианствоБиблия Ветхий Завет Новый Завет Евангелие Десять заповедей Нагорная проповедь Апокрифы Бог, Троица Бог Отец Иисус Христос Святой Дух История христианства Апостолы Хронология христианства Ранне…

Couvent d'Ursberg Autel latéral de gauche de l'église conventuelle Présentation Nom local Kloster Ursberg Rattachement Ordre des frères mineurs Début de la construction 1125 Style dominant Architecture baroque Géographie Pays Allemagne Land Bavière Commune Ursberg Coordonnées 48° 15′ 58″ nord, 10° 26′ 47″ est Géolocalisation sur la carte : Bavière Géolocalisation sur la carte : Allemagne modifier  Le couvent d'Ursberg est un couve…

Artikel ini tidak memiliki referensi atau sumber tepercaya sehingga isinya tidak bisa dipastikan. Tolong bantu perbaiki artikel ini dengan menambahkan referensi yang layak. Tulisan tanpa sumber dapat dipertanyakan dan dihapus sewaktu-waktu.Cari sumber: Lebah – berita · surat kabar · buku · cendekiawan · JSTOR Lebah Periode Zaman Kapur Akhir – Sekarang, 100–0 jtyl PreЄ Є O S D C P T J K Pg N Anthophila Lebah madu barat TaksonomiKerajaanAnim…

Février 1800 Nombre de jours 28 Premier jour Samedi 1er février 18006e jour de la semaine 5 Dernier jour Vendredi 28 février 18005e jour de la semaine 9 Calendrier février 1800 Sem Lu Ma Me Je Ve Sa Di 5 1er 2 6 3 4 5 6 7 8 9 7 10 11 12 13 14 15 16 8 17 18 19 20 21 22 23  9 24 25 26 27 28 1800 • Années 1800 • XVIIIe siècle Mois précédent et suivant Janvier 1800 Mars 1800 Février précédent et suivant Février 1799 Février 1801 Chronologies par zone géogra…

Peyton ListList tahun 2013LahirPeyton Roi List6 April 1998 (umur 26)Florida, Amerika SerikatPekerjaan Aktris model Tahun aktif2002–sekarang Peyton Roi List[1] (lahir 6 April 1998[2]) adalah seorang aktris dan model asal Amerika Serikat. List memulai karirnya sebagai model cilik, model untuk tween majalah dan perusahaan. Dia membuat debut aktingnya dalam film 27 Dresses (2008), dan mulai dikenal karena perannya sebagai Holly Hills dalam serial film Diary of a Wimpy Kid…

Antonio Maria AvogadroStemma degli AvogadroNascitaBrescia, 1500 MorteAversa, settembre 1528 voci di militari presenti su Wikipedia Manuale Antonio Maria Avogadro (Brescia, 1500 – Aversa, settembre 1528) è stato un politico e militare italiano del XV secolo. Indice 1 Biografia 2 Note 3 Voci correlate 4 Collegamenti esterni Biografia Antonio Maria nacque a Brescia ed era figlio di Luigi Avogadro, che era stato protagonista delle congiure antifrancesi del XVI secolo. Dopo la riconquista …

Questa voce o sezione sull'argomento calciatori brasiliani non cita le fonti necessarie o quelle presenti sono insufficienti. Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Segui i suggerimenti del progetto di riferimento. Questa voce sull'argomento calciatori brasiliani è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. Serginho Nazion…

Lewis Addison ArmisteadIl brigadiere generale degli Stati Confederati d'America Lewis Addison ArmisteadSoprannomeLo NascitaNew Bern, 18 febbraio 1817 MorteGettysburg, 5 luglio 1863 Cause della morteferita da arma da fuoco Luogo di sepolturaOld Saint Paul's CemeteryBaltimora Dati militariPaese servito Stati Uniti Stati Confederati d'America Forza armataEsercito statunitenseEsercito confederato Anni di servizio1839–1861 USA1861–1863 Confederazione Gradocapitano (USA)brigadier…

American baseball player Baseball player Mike HessmanHessman with the Detroit Tigers in 2007First baseman / Third basemanBorn: (1978-03-05) March 5, 1978 (age 46)Fountain Valley, California, U.S.Batted: RightThrew: RightProfessional debutMLB: August 22, 2003, for the Atlanta BravesNPB: April 12, 2011, for the Orix BuffaloesLast appearanceMLB: October 3, 2010, for the New York MetsNPB: August 2, 2011, for the Orix BuffaloesMLB stati…

Disambiguazione – Se stai cercando la città della Libia, vedi Homs (Libia). Questa voce o sezione sull'argomento centri abitati della Siria non cita le fonti necessarie o quelle presenti sono insufficienti. Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Homscittà(AR) حمص (Ḥimṣ) Homs – Veduta LocalizzazioneStato Siria GovernatoratoHoms DistrettoHoms SottodistrettoHoms AmministrazioneAmministratore localeMo…

Ilustrasi cara perbedaan konsentrasi pada sisi yang berbeda dari suatu membran sel menghasilkan perbedaan tegangan. Potensial membran (bahasa Inggris: membrane potential, ΔΨ) adalah beda potensial elektrik antara dinding sebelah luar dan sebelah dalam dari suatu membran sel yang berkisar dari sekitar -50 hingga -200 milivolt (tanda minus menunjukkan bahwa di dalam sel bersifat negatif dibandingkan dengan di luarnya).[1] Semua sel memiliki tegangan melintasi membran plasmanya, di ma…

Untuk kegunaan lain, lihat Hantu (disambiguasi). Sebuah foto yang konon menampilkan penampakan hantu Ilustrasi hantu bajak laut karya Howard Pyle. Hantu, memedi[1], dedemit[2], atau lelembut[3] adalah roh dari orang atau hewan yang telah mati yang menampakkan wujudnya dalam kehidupan kini. Definisi dari hantu pada umumnya berbeda untuk setiap agama, peradaban, maupun adat istiadat. Dalam banyak kebudayaan, hantu tidak didefinisikan sebagai zat yang baik maupun jahat. Sebu…

  「伊斯兰国家」重定向至此。關於一种政权形式,請見「伊斯兰国 (政权形式)」。 此條目需要补充更多来源。 (2019年2月22日)请协助補充多方面可靠来源以改善这篇条目,无法查证的内容可能會因為异议提出而被移除。致使用者:请搜索一下条目的标题(来源搜索:穆斯林世界 — 网页、新闻、书籍、学术、图像),以检查网络上是否存在该主题的更多可靠来源(判…

西維珍尼亞 美國联邦州State of West Virginia 州旗州徽綽號:豪华之州地图中高亮部分为西維珍尼亞坐标:37°10'N-40°40'N, 77°40'W-82°40'W国家 美國加入聯邦1863年6月20日(第35个加入联邦)首府(最大城市)查爾斯頓政府 • 州长(英语:List of Governors of {{{Name}}}]]) • 副州长(英语:List of lieutenant governors of {{{Name}}}]])吉姆·賈斯蒂斯(R)米奇·卡邁克爾(英…

1996 video gameBox artPublisher(s)Sega[1]Platform(s)Game GearReleaseJP: December 6, 1996Genre(s)StrategyMode(s)Single-player Pet Club: Inu Daisuki! (ペット倶楽部 いぬ大好き!, Pet Club: Loves Dogs!)[2] is a video game where a player controls a young female person who has to take care of a pet dog. Summary Attempting to play with the puppy. The object of the game is to nurture the dog from puppyhood into adulthood and even into old age. There are many breeds of pets an…

此條目需要补充更多来源。 (2021年7月4日)请协助補充多方面可靠来源以改善这篇条目,无法查证的内容可能會因為异议提出而被移除。致使用者:请搜索一下条目的标题(来源搜索:美国众议院 — 网页、新闻、书籍、学术、图像),以检查网络上是否存在该主题的更多可靠来源(判定指引)。 美國眾議院 United States House of Representatives第118届美国国会众议院徽章 众议院旗帜…

Kembali kehalaman sebelumnya