Guide galattiche per aspiranti programmatori

Illustrazione di un developer che ha a che fare con database e archivi
Lezione 26 / 33

Come configurare il database con Doctrine ORM

Symfony mette a disposizione dello sviluppatore una serie di strumenti che permettono di utilizzare e semplificare la gestione di un database. Questi tool, racchiusi all’interno del bundle Doctrine ORM, sono in grado di supportare sia database relazionali come MySQL che database NoSQL come MongoDB.

Prima di procedere con la configurazione di Doctrine ORM, è opportuno spiegare cosa significa ORM.

Cos’è un ORM

META DESCRIPTION: Scopri cos’è un ORM, il suo ruolo nella mappatura object-relational e come facilita la gestione dei dati nelle applicazioni web.

ORM sta per Object-Relational Mapping ed è una tecnica di programmazione che consente di interagire con i database, come ad esempio MySQL o PostgreSQL, utilizzando oggetti. In questo modo, viene ridotta drasticamente la quantità di istruzioni SQL necessarie per eseguire tutte le operazioni sui dati richieste dal progetto. Infatti, l’ORM permette di lavorare con il database utilizzando il paradigma della programmazione orientata agli oggetti.

L’idea di base dietro un ORM è quella di mappare gli oggetti alle tabelle del database e viceversa, come mostrato nello schema seguente.

mappa orm doctrine

Questo meccanismo permette agli sviluppatori di concentrarsi sulla logica dell’applicazione piuttosto che sulle specifiche del database.

I principali vantaggi derivanti dall’utilizzo di uno strato ORM sono i seguenti:

 

  • Astrazione del database: non è necessario scrivere codice SQL specifico per un determinato DBMS. L’ORM si occupa di generare istruzioni SQL per il database che si sta utilizzando.
  • Sicurezza: L’ORM fornisce protezione integrata contro le vulnerabilità più comuni come SQL injection.
  • Manutenibilità: il codice è più pulito, più comprensibile e più facile da manutenere.
  • Riusabilità: la separazione tra logica di business e logica di accesso ai dati favorisce il riutilizzo del codice in più componenti.


Ricordiamo che, se dovessi aver necessità di rispolverare i concetti inerenti a database e al linguaggio SQL, potrai consultare,i tra le nostre risorse online, la nostra guida SQL in italiano.

 

Come installare Doctrine ORM

Procediamo all’installazione di Doctrine tramite il Symfony pack orm:

composer require symfony/orm-pack

Il comando lanciato si è occupato di effettuare l’installazione e la configurazione del bundle Doctrine ORM per Symfony.

Per configurare la connessione al database è necessario accedere al file .env della root del progetto, identificare la variabile DATABASE_URL riferita al proprio DBMS e decommentare. Nel caso di XAMPP, la riga di interesse è la seguente

DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=10.11.2-MariaDB&charset=utf8mb4"

Sostituire app (username), !ChangeMe! (password), 127.0.0.1 (indirizzo), 3306 (porta) e app (nome) e il parametro serverVersion con le impostazioni del proprio server dbms. Per recuperare le informazioni sul server, possiamo avvalerci del supporto di phpmyadmin.

Per prima cosa, accedere al pannello di controllo di XAMPP e avviare il servizio MySql.

XAMPP control panel database

Dal pannello di controllo è già visibile l’informazione sulla porta dove è in ascolto il database. Premere su “Admin” (evidenziato in giallo) per accedere a phpmyadmin. Si presenterà la seguente schermata:

phpmyadmin database dashboard

Nella parte destra dell’interfaccia web, all’interno della sezione “Server del Database”, sono disponibili le informazioni sul nostro DBMS. La prima riga contiene indirizzo (127.0.0.1) e porta (33306) del database. 

 

Successivamente, è indicata la tipologia (MariaDB) e, più in basso, è possibile reperire la versione del DBMS (10.4.28-MariaDB).

Aggiorniamo, quindi, la variabile DATABASE_URL all’interno del file .env con le informazioni appena recuperate:

DATABASE_URL="mysql://root:test@127.0.0.1:33306/symfonytest?serverVersion=10.4.28-MariaDB&charset=utf8mb4"

A questo punto, occorre solo Inserire le proprie credenziali e scegliere il nome del database per il progetto, in questo caso symfonytest.

Ulteriori configurazioni di Doctrine sono presenti in /config/packages/doctrine.yaml:

configurazione database symfony

Osserviamo il nostro codice. Alla riga 3 notiamo come l’URL per la connessione al database venga recuperato dal file .env appena modificato. Un altro passaggio interessante si trova alla riga 21, dove viene definito il prefisso che identifica il namespace dove devono essere collocate le Entity da mappare. Tutte le altre configurazioni possono essere approfondite sulla documentazione ufficiale.

Come creare un database in Symfony

Completata la configurazione di Doctrine, si può procedere con la creazione del database. Se il database specificato in DATABASE_URL di .env non esiste ancora, è possibile crearlo direttamente da console di Symfony utilizzando il comando:

 

php bin/console doctrine:database:create

Riceviamo il seguente messaggio in output

output console

 

Accedendo nuovamente a phpMyAdmin si può notare come, effettivamente, sia stato creato il nuovo database

phpmyadmin database

Il nuovo database risulta senza alcuna tabella definita, vedremo più avanti come creare e mappare nuove tabelle tramite l’utilizzo delle Entity.

Contattaci senza impegno per informazioni sul corso

Scopriamo insieme se i nostri corsi fanno per te. Compila il form e aspetta la chiamata di uno dei nostri consulenti.

Contattaci senza impegno per informazioni sul corso

Pagamento rateale

Valore della rata: A PARTIRE DA 112 €/mese.

Esempio di finanziamento  

Importo finanziato: € 2440 in 24 rate da € 112 – TAN fisso 9,37% TAEG 12,57% – importo totale del credito € 2788,68.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/07/2023 al 31/12/2023.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

* In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Pagamento rateale

Valore della rata: A PARTIRE DA 183 €/mese.

Esempio di finanziamento 

Importo finanziato: € 3990 in 24 rate da € 183 – TAN fisso 9,37% TAEG 12,57% – importo totale del credito € 4496,56.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/07/2023 al 31/12/2023.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

* In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.