⚠️ Abandoned packageThis package is abandoned and no longer maintained.
The author suggests using michel/dotenv instead.
PHP-DotEnv is a lightweight and robust PHP library designed to simplify the management of environment variables in your PHP applications. It parses a .env file and loads the variables into getenv(), $_ENV, and $_SERVER.
It comes with a powerful processor system that automatically converts values (booleans, nulls, numbers) and allows you to define your own custom processors for specific needs.
Requires PHP 7.4 or higher.
Install via Composer:
composer require phpdevcommunity/php-dotenvCreate a
.envfile in your project root:APP_ENV=devDATABASE_URL="mysql:host=localhost;dbname=test"DEBUG=trueCACHE_TTL=3600API_KEY=null# This is a comment
Load the variables in your PHP entry point (e.g.,
index.php):<?phprequire'vendor/autoload.php'; usePhpDevCommunity\DotEnv; $envFile = __DIR__ . '/.env'; // Load environment variables (newDotEnv($envFile))->load(); // Access variablesvar_dump(getenv('APP_ENV')); // string(3) "dev"var_dump($_ENV['DEBUG']); // bool(true)
PHP-DotEnv automatically processes values using default processors:
- BooleanProcessor: Converts
trueandfalse(case-insensitive) to PHPbool. - NullProcessor: Converts
null(case-insensitive) to PHPnull. - NumberProcessor: Converts numeric strings to
intorfloat. - QuotedProcessor: Removes surrounding double quotes
"or single quotes'from strings.
Lines starting with # are treated as comments and ignored.
Keys and values are automatically trimmed of whitespace.
You can extend the functionality by creating custom processors. A processor must extend PhpDevCommunity\Processor\AbstractProcessor.
Example: A processor that converts comma-separated strings into arrays.
namespaceApp\Processor;
usePhpDevCommunity\Processor\AbstractProcessor;
class ArrayProcessor extends AbstractProcessor
{
publicfunctioncanBeProcessed(): bool
{
// Process only if value contains a commareturnstrpos($this->value, ',') !== false;
}
publicfunctionexecute()
{
returnarray_map('trim', explode(',', $this->value));
}
}Pass an array of processor class names to the DotEnv constructor.
Note: When you pass custom processors, you must also include the default ones if you still want them to run.
usePhpDevCommunity\DotEnv;
usePhpDevCommunity\Processor\BooleanProcessor;
usePhpDevCommunity\Processor\NullProcessor;
usePhpDevCommunity\Processor\NumberProcessor;
usePhpDevCommunity\Processor\QuotedProcessor;
useApp\Processor\ArrayProcessor;
$processors = [
BooleanProcessor::class,
NullProcessor::class,
NumberProcessor::class,
QuotedProcessor::class,
ArrayProcessor::class // Your custom processor
];
(newDotEnv(__DIR__ . '/.env', $processors))->load();PHP-DotEnv est une bibliothèque PHP légère conçue pour simplifier la gestion des variables d'environnement dans vos applications PHP. Elle analyse un fichier .env et charge les variables dans getenv(), $_ENV et $_SERVER.
Elle intègre un système de processeurs qui convertit automatiquement les valeurs (booléens, null, nombres) et vous permet de définir vos propres processeurs personnalisés.
Nécessite PHP 7.4 ou supérieur.
Installez via Composer :
composer require phpdevcommunity/php-dotenvCréez un fichier
.envà la racine de votre projet :APP_ENV=devDATABASE_URL="mysql:host=localhost;dbname=test"DEBUG=trueCACHE_TTL=3600API_KEY=null# Ceci est un commentaire
Chargez les variables dans votre point d'entrée PHP (ex:
index.php) :<?phprequire'vendor/autoload.php'; usePhpDevCommunity\DotEnv; $envFile = __DIR__ . '/.env'; // Charger les variables d'environnement (newDotEnv($envFile))->load(); // Accéder aux variablesvar_dump(getenv('APP_ENV')); // string(3) "dev"var_dump($_ENV['DEBUG']); // bool(true)
PHP-DotEnv traite automatiquement les valeurs à l'aide de processeurs par défaut :
- BooleanProcessor : Convertit
trueetfalse(insensible à la casse) enboolPHP. - NullProcessor : Convertit
null(insensible à la casse) ennullPHP. - NumberProcessor : Convertit les chaînes numériques en
intoufloat. - QuotedProcessor : Supprime les guillemets doubles
"ou simples'entourant les chaînes.
Les lignes commençant par # sont traitées comme des commentaires et ignorées.
Les espaces autour des clés et des valeurs sont automatiquement supprimés.
Vous pouvez étendre les fonctionnalités en créant des processeurs personnalisés. Un processeur doit étendre PhpDevCommunity\Processor\AbstractProcessor.
Exemple : Un processeur qui convertit les chaînes séparées par des virgules en tableaux.
namespaceApp\Processor;
usePhpDevCommunity\Processor\AbstractProcessor;
class ArrayProcessor extends AbstractProcessor
{
publicfunctioncanBeProcessed(): bool
{
// Traiter uniquement si la valeur contient une virgulereturnstrpos($this->value, ',') !== false;
}
publicfunctionexecute()
{
returnarray_map('trim', explode(',', $this->value));
}
}Passez un tableau de noms de classes de processeurs au constructeur de DotEnv.
Note : Lorsque vous passez des processeurs personnalisés, vous devez également inclure ceux par défaut si vous souhaitez qu'ils continuent de fonctionner.
usePhpDevCommunity\DotEnv;
usePhpDevCommunity\Processor\BooleanProcessor;
usePhpDevCommunity\Processor\NullProcessor;
usePhpDevCommunity\Processor\NumberProcessor;
usePhpDevCommunity\Processor\QuotedProcessor;
useApp\Processor\ArrayProcessor;
$processors = [
BooleanProcessor::class,
NullProcessor::class,
NumberProcessor::class,
QuotedProcessor::class,
ArrayProcessor::class // Votre processeur personnalisé
];
(newDotEnv(__DIR__ . '/.env', $processors))->load();