PHP Academy · Lezione

Variabili d'ambiente e file .env

Gestire la configurazione sensibile con file .env e librerie dotenv in PHP.

Lezione 2 di 412 passaggi

Variabili d'ambiente e file .env è una lezione PHP Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento PHP Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso PHP Academy include 4 lezioni in totale.

Perché utilizzare le variabili d'ambiente?

Inserire credenziali o configurazioni specifiche dell'ambiente direttamente nel codice sorgente non è sicuro e rende fragili le distribuzioni. Le variabili d'ambiente separano la configurazione dal codice.

Il file .env

Un file .env contiene coppie chiave-valore caricate nell'ambiente all'avvio. Aggiungetelo a .gitignore: non eseguite MAI il commit nel controllo versione.

# .env
APP_ENV=production
APP_KEY=base64:...
DB_HOST=127.0.0.1
DB_NAME=myapp
DB_USER=myapp_user
DB_PASS=supersecret

REDIS_HOST=127.0.0.1
MAIL_HOST=smtp.mailtrap.io

Integrazione di .env in Laravel

Laravel utilizza vlucas/phpdotenv per caricare automaticamente .env. Accedete ai valori con l'helper env().

<?php
$host = env("DB_HOST", "127.0.0.1"); // "127.0.0.1" is the default

config() e env()

Utilizzate env() solo nei file config/*.php. In tutti gli altri punti, utilizzate config("database.host"): funziona correttamente anche con la memorizzazione nella cache della configurazione.

<?php
// In config/database.php:
"host" => env("DB_HOST", "127.0.0.1")

// In your service classes:
$host = config("database.connections.mysql.host");

Memorizzazione nella cache della configurazione

Memorizzate la configurazione nella cache in produzione per evitare di analizzare .env a ogni richiesta.

$ php artisan config:cache
# After changing .env:
$ php artisan config:clear

PHP puro con phpdotenv

Utilizzate vlucas/phpdotenv al di fuori di Laravel.

$ composer require vlucas/phpdotenv

<?php
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();
$host = $_ENV["DB_HOST"];

Variabili obbligatorie

Verificate le variabili d'ambiente obbligatorie all'avvio per individuare tempestivamente la configurazione mancante.

<?php
$dotenv->required(["DB_HOST", "DB_NAME", "DB_USER", "DB_PASS"]);
$dotenv->required(["DB_PORT"])->isInteger();

File .env.example

Eseguite il commit di un file .env.example contenente tutti i nomi delle variabili, ma nessun valore. Gli sviluppatori lo copiano in .env e inseriscono i propri valori.

Variabili d'ambiente a livello server

In produzione, impostate le variabili d'ambiente a livello di server (file di servizio systemd, flag Docker --env, segreti Kubernetes) invece di utilizzare un file .env.

# systemd service:
[Service]
Environment="APP_ENV=production"
Environment="DB_HOST=db.internal"

Gestione dei segreti

Per le credenziali sensibili (chiavi API, certificati), prendete in considerazione un secrets manager: HashiCorp Vault, AWS Secrets Manager oppure i segreti di GitHub Actions per la CI.

Riepilogo

Memorizzate tutta la configurazione specifica dell'ambiente in .env. Non eseguite mai il commit di questo file. Utilizzate config() nel codice dell'applicazione e env() solo nei file di configurazione. Memorizzate la configurazione nella cache in produzione con php artisan config:cache.

Verifica rapida

Dove dovreste chiamare env() in un'applicazione Laravel?

Gratis per iniziare

Impara PHP con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
49
Lezioni
195

Domande Frequenti

La lezione «Variabili d'ambiente e file .env» è gratuita?

Sì — il testo completo di «Variabili d'ambiente e file .env» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso PHP Academy, passa a CoddyKit PRO. Il corso PHP Academy include 4 lezioni in totale.

Cosa imparerò in «Variabili d'ambiente e file .env»?

Gestire la configurazione sensibile con file .env e librerie dotenv in PHP. Eserciti PHP Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare PHP Academy?

Non è richiesta alcuna esperienza precedente. PHP Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Variabili d'ambiente e file .env»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione PHP Academy?

Sì. Ogni lezione PHP Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Configurazione di Nginx e PHP-FPM
  2. Variabili d'ambiente e file .env
  3. Deploy con GitHub Actions
  4. Containerizzazione di un'applicazione PHP
← Torna a PHP Academy