Doctrine (PHP): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
replaced: , → , , il 1 → il 1°, typos fixed: a . → a. (2), replaced: 1° ° → 1°, rilasciata → pubblicata using AWB |
aggiunti collegamenti |
||
Riga 13:
}}
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 [[object-relational mapping|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.
==Dimostrazione d'uso==
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 [[Design pattern|pattern]] "data mapper"):
<source lang="php">
Riga 43:
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.
Riga 63:
==Influenze==
Doctrine è stato influenzato da decine di progetti e molte persone diverse. Le maggiori influenze sono stati l'ORM Hibernate di [[Java_(linguaggio_di_programmazione)|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.
==Voci correlate==
|