Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Variabili d'ambiente e configurazione degli ambienti

Cosa sono, come funzionano e i che modo possono essere configurati i vari ambienti che fanno riferimento ad un progetto basato sul framework PHP Symfony
Cosa sono, come funzionano e i che modo possono essere configurati i vari ambienti che fanno riferimento ad un progetto basato sul framework PHP Symfony
Link copiato negli appunti

Nella lezione precedente abbiamo fatto riferimento al file .env senza entrare in dettaglio delle sue caratteristiche. Come probabilmente avrà intuito il lettore, si tratta di un file in cui sono contenute le variabili d'ambiente necessarie al funzionamento del progetto corrente.

Cosa si intende però per ambiente? con questo termine facciamo riferimento al contesto in cui sta girando l’applicazione in un determinato momento.

Nel nostro container Docker abbiamo di default due ambienti: dev e test. Il primo environment è utile per le normali sessioni di sviluppo (risponde ad esempio al caricamento di una pagina da browser Web), il secondo si attiva quando facciamo funzionare la nostra suite di test. Oltre agli ambienti di sviluppo, però, avremo sicuramente un ambiente di produzione, prod, in cui caricheremo il nostro lavoro una volta completato e, auspicabilmente, un ambiente di staging in cui provare eventuali modifiche prima di caricarle in produzione.

Dati questi (almeno) 4 ambienti su cui la nostra applicazione girerà, abbiamo la necessità di configurare per ognuno di essi delle informazioni che sicuramente saranno differenti. Basti pensare alle credenziali di accesso al database che saranno diverse in base all'ambiente su cui lavoriamo.

Negli anni la gestione delle configurazioni dei vari ambienti è notevolmente cambiata su Symfony, fino ad arrivare alla situazione corrente. Come anticipato, il file .env contiene le configurazioni di default necessarie che verranno poi iniettate al container di Symfony. Questo file è consigliabile committarlo in modo da poterlo distribuire al team.

Esistono inoltre altri file .env che vengono gestiti da Symfony e sono i seguenti:

  • .env.local: sovrascrive quanto scritto sul file .env per il solo ambiente locale su cui si sta lavorando in questo momento. Un esempio di caso d’uso potrebbe essere: definiamo nel file .env le variabili che vogliamo far usare al nostro team delegando ai singoli, ad esempio, l'IP della macchina su cui far girare l'applicazione. Questo file non deve essere committato.
  • .env.$APP_ENV: stessa logica del file .env con la differenza che viene specifico per l'ambiente $APP_ENV. Questo file va sotto controllo di versione ma non dovrebbe contenere dati sensibili come, ad esempio, le credenziali di accesso al database.
  • .env.$APP_ENV.local: stessa logica del file .env solo che è specifico per l'ambiente $APP_ENV. Questo file non deve essere committato e, personalmente, consiglio di evitarne l'utilizzo in favore di .env.local.

Le variabili che definiamo all'interno di questi file possono essere poi utilizzate all'interno dei file di configurazione dell'applicazione.

Ti consigliamo anche