Doctrine è una libreria PHP avanzata per il lavoro su database orientato agli oggetti. Lo scopo principale e l'obiettivo di Doctrine è descrivere lo schema del database usando entità di dati e manipolare i dati in un modo completamente orientato agli oggetti.
Questo paradigma è chiamato ORM (Object-relational mapping), che è design-pattern per convertire (wrapping) i dati memorizzati in un database relazionale in un oggetto che può essere usato in un linguaggio orientato agli oggetti. Quindi, per capire e usare Doctrine, devi conoscere almeno le basi della programmazione orientata agli oggetti.
Ci sono molte ragioni:
La lunga opinione dell'autore di questo articolo (Jan Barasek) è che Doctrine è il modo migliore per lavorare con un database PHP. Semplicemente non ha concorrenza.
Prima di iniziare a usare Doctrine in modo completo, è necessario preparare un ambiente adatto. Se siete agli inizi con PHP o non avete conoscenze approfondite, la scelta migliore è quella di installare il Nette Framework con il pacchetto di estensione Baraja Doctrine, che integra automaticamente il supporto completo. Prima scarica il pacchetto tramite Composer, poi imposta la DI Extension e Doctrine inizierà a lavorare automaticamente.
Affinché Doctrine funzioni correttamente, è necessario preparare una base di dati vuota (Doctrine può anche lavorare con un progetto esistente, ma questo è inappropriato per i primi passi perché rischia di sovrascrivere i dati esistenti) e configurare la connessione. Poiché Doctrine non è solo una libreria di database, ma fornisce un framework di database avanzato, è necessario risolvere altre configurazioni. La maggior parte delle impostazioni sono sovrascritte automaticamente in quel pacchetto per Nette, tuttavia nella configurazione minima il tuo server deve supportare le estensioni APCu Cache
o SQLite3
.
Se tutto è stato configurato correttamente, un nuovo servizio DI Baraja\Doctrine\EntityManager
sarà creato in Nette, che potrete iniettare in Presenter:
namespace App\FrontModule\Presenters;use Baraja\Doctrine\EntityManager;final class HomepagePresenter extends BasePresenter{#[Inject]public EntityManager $entityManager;}
Se si riesce a iniettare il servizio EntityManager di base, si può iniziare a imparare e lavorare con Doctrine.
I seguenti capitoli sono una combinazione di una guida di riferimento alla tecnologia Doctrine, anni di esperienza, modelli di progettazione e soluzioni pronte all'uso. Insieme passeremo attraverso tutti gli elementi di base di Doctrine, dalla definizione della propria entità, alla generazione di uno schema di database fisico, al lavoro con uno strumento di versioning e al deployment in produzione.
Uso Doctrine da molto tempo e ho risolto migliaia di casi con esso. Mostreremo suggerimenti e trucchi su come usare Doctrine per ottimizzare la velocità del database e come progettare un database in modo appropriato. Potete anche usare Doctrine per un progetto esistente (se soddisfate certe condizioni) e vi mostreremo come fare.
Questa serie di articoli è stata creata per aiutare i miei studenti di formazione e consulenza. Se avete bisogno di discutere o spiegare alcuni argomenti in modo più dettagliato, potete mandarmi un'email a jan@barasek.com. Poiché si tratta di una tecnologia relativamente esigente, tutte le domande saranno trattate come una consultazione a pagamento.
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | it