Qu'est-ce que phpdotenv ?
phpdotenv est une bibliothèque PHP populaire pour gérer la configuration d'applications via des variables d'environnement. Elle permet de charger les paramètres depuis un fichier .env dans le tableau $_ENV et les variables globales getenv(), ce qui simplifie la séparation de la configuration et du code. Créée d'après la bibliothèque Ruby dotenv, elle est largement utilisée dans les frameworks PHP modernes (Laravel, Symfony).
Pourquoi utiliser phpdotenv ?
Lors du développement d'applications, il est souvent nécessaire de stocker des données sensibles (mots de passe de base de données, clés API) séparément du code. phpdotenv résout ce problème : vous créez un fichier .env qui n'entre pas dans le dépôt (ajouté dans .gitignore), et la bibliothèque le charge dans l'environnement. Cela garantit la sécurité, la flexibilité (paramètres différents pour dev/staging/prod) et la conformité au principe de l'application 12-factor.
Installation de phpdotenv
Installez la bibliothèque via Composer :
composer require vlucas/phpdotenvAssurez-vous d'avoir Composer installé et PHP version 7.1 ou supérieure.
Fonctions principales
- Chargement du fichier .env — analyse clé=valeur avec prise en charge des commentaires (#) et des lignes vides.
- Variables obligatoires — vérification de la présence des clés nécessaires avec
required(). - Typage — conversion automatique des chaînes en types (boolean, integer, null).
- Sécurité — échappement des caractères spéciaux, prise en charge des guillemets.
- Immutabilité — protection contre l'écrasement des variables d'environnement existantes.
Exemple de code PHP
require 'vendor/autoload.php';
use Dotenv\\Dotenv;
// Chargeons .env depuis le répertoire racine$dotenv = Dotenv::createImmutable(__DIR__);$dotenv->load();
// Les variables sont maintenant accessibles via getenv()$dbHost = getenv('DB_HOST');$dbName = getenv('DB_NAME');
// Ou via $_ENVecho $_ENV['APP_ENV']; // 'local'
// Vérification des variables obligatoires$dotenv->required(['DB_HOST', 'DB_NAME']);
// Exemple de fichier .env :// DB_HOST=localhost// DB_NAME=test// APP_ENV=localQuand utiliser phpdotenv
La bibliothèque est idéale pour :
- Applications web en PHP (Laravel, Symfony, Slim).
- Scripts CLI et microservices.
- Projets nécessitant un changement rapide de configuration sans modifier le code.
- Développement en équipe — chaque développeur peut avoir son propre
.env. - Pipelines CI/CD — les variables sont définies via l'environnement du serveur, et non via un fichier.
Important : Ne commitez jamais le fichier .env dans le dépôt. Créez un fichier .env.example avec un modèle pour vos collègues.