
Partager:
Diana est défenseur des développeurs chez Vonage. Elle aime manger des huîtres fraîches.
Comment utiliser les variables d'environnement PHP dans Symfony
Temps de lecture : 3 minutes
Introduction
Les variables d'environnement (env vars) vous permettent de configurer votre environnement Symfony en fonction de l'environnement d'exécution. Ce tutoriel vous guidera dans l'utilisation des variables d'environnement dans un projet Symfony.
Comprendre les variables d'environnement et les paramètres
Symfony utilise des variables d'environnement pour stocker des valeurs de configuration telles que les identifiants de la base de données, les clés API et d'autres informations sensibles ou spécifiques à l'environnement. Ces valeurs peuvent être définies dans un fichier .env ou directement dans l'environnement du serveur. Alors que les variables d'environnement définissent des valeurs au niveau du système ou de l'application, les paramètres sont stockés dans le conteneur de service et peuvent faire référence à des variables d'environnement.
Configuration des variables d'environnement
L'utilisation de la.env Fichier
Les projets Symfony sont livrés avec un fichier .env dans lequel vous pouvez définir des variables d'environnement :
# .env
VONAGE_API_KEY=your_api_key
VONAGE_API_SECRET=your_api_secretVous pouvez également créer un fichier env.local qui remplacera les paramètres de votre environnement local.
# .env.local
VONAGE_API_KEY=your_production_api_key
VONAGE_API_SECRET=your_production_api_secret Accès aux variables d'environnement dans Symfony
Dans votre .env ou env.local il y a une variable nommée APP_ENV. C'est ce paramètre qui détermine les fichiers de configuration à lire au moment de l'exécution. prod pour la production (par exemple, si vous utilisez une plate-forme en tant que service telle que Platform.sh), test pour un environnement de type UAT lorsque vous utilisez des outils tels que PHPUnit ou PHPStan et enfin dev pour votre environnement de développement local. Il existe deux méthodes différentes pour récupérer la configuration chargée.
Dans les fichiers de configuration
Symfony permet de référencer des variables d'environnement dans les fichiers de configuration en utilisant la syntaxe %env(VAR_NAME)% dans les fichiers de configuration. Par exemple, dans config/packages/vonage.yaml:
Vonage:
api_key: '%env(VONAGE_API_KEY)%'
api_secret: '%env(VONAGE_API_SECRET)%' Dans les services
Vous pouvez injecter des variables d'environnement dans les services en les spécifiant dans le champ config/services.yaml:
parameters:
vonage.api_key: '%env(VONAGE_API_KEY)%'
vonage.api_secret: '%env(VONAGE_API_SECRET)%'Ensuite, dans votre service classe :
namespace App\Service;
use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;
class VonageService
{
private string $apiKey;
private string $apiSecret;
public function __construct(private
ContainerBagInterface
$config)
{
$this->apiKey = $this->params->get('vonage.api_key');
$this->apiSecret = $this->params->get('vonage.api_secret');
}
}
Vous pouvez également utiliser la fonction getenv() de PHP :
$apiKey = getenv('VONAGE_API_KEY');
$apiSecret = getenv('VONAGE_API_SECRET');Dans la bibliothèque standard, il s'agit essentiellement d'une enveloppe pour la commande $_ENV[] SuperglobalCependant, il est recommandé d'utiliser la configuration de Symfony, qui dispose d'un ensemble d'outils beaucoup plus polyvalents pour gérer les variables d'environnement.
Validation et normalisation des variables d'environnement
Symfony fournit un env() pour transformer et valider les variables d'environnement :
parameters:
vonage_api_key: '%env(string:VONAGE_API_KEY)%'
vonage_api_secret: '%env(string:VONAGE_API_SECRET)%' Quand utiliser des variables d'environnement ou des paramètres
Utilisez les paramètres pour les valeurs qui restent constantes d'un environnement à l'autre.
Utiliser des variables d'environnement pour les valeurs qui changent en fonction de l'environnement, telles que les clés et les secrets de l'API.
Optimiser les performances
Pour améliorer les performances en production, il est possible de transférer les variables d'environnement dans un fichier PHP compilé :
composer dump-env prodCela génère .env.local.phppermettant à Symfony de charger les variables d'environnement sans analyser les fichiers .env au moment de l'exécution.
Variables d'environnement et paramètres de débogage
Les commandes suivantes permettent d'inspecter les paramètres actuels :
bin/console debug:container --env-vars
bin/console debug:container --parameters Considérations relatives à la sécurité
Ne jamais livrer les données sensibles du fichier
.envdans le contrôle de version.Utiliser
.env.localpour les dérogations locales et configurer les environnements de production à l'aide de variables d'environnement réelles.Validez les variables d'environnement avant de les utiliser.
Comprendre l'environnement Symfony par rapport à l'environnement serveur
Environnement Symfony (
APP_ENV) définit le mode d'application (par ex,dev,prod,test).Environnement du serveur désigne la machine physique ou virtuelle qui exécute l'application.
Conclusion
Avec les variables d'environnement, Symfony vous donne un moyen sympa d'adapter votre application à n'importe quelle étape - développement, test ou production - sans rien coder en dur, ce qui la rend propre et sécurisée.
Vous avez une question ou souhaitez partager ce que vous construisez ?
Rejoignez la conversation sur le Communauté Vonage Slack
S'abonner à la Bulletin d'information du développeur
Suivez-nous sur X (anciennement Twitter) pour les mises à jour
Regardez les tutoriels sur notre chaîne YouTube
Connectez-vous avec nous sur la page Vonage Developer sur LinkedIn
Restez connecté et tenez-vous au courant des dernières nouvelles, astuces et événements concernant les développeurs.