Position actuelle: Accueil> Derniers articles> [Comment utiliser la fonction PUTENV de PHP pour définir et gérer correctement les variables d'environnement? Explication détaillée des étapes]

[Comment utiliser la fonction PUTENV de PHP pour définir et gérer correctement les variables d'environnement? Explication détaillée des étapes]

gitbox 2025-09-03

2. Utiliser avec GETENV et $ _ENV

Après avoir établi la variable d'environnement, nous devons souvent le lire dans le programme. Il existe deux façons d'utiliser:

  1. Obtenez-le via getenv ()

 <span><span><span class="hljs-title function_ invoke__">putenv</span></span><span>(</span><span><span class="hljs-string">"APP_DEBUG=true"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">getenv</span></span><span>(</span><span><span class="hljs-string">"APP_DEBUG"</span></span><span>); </span><span><span class="hljs-comment">// Sortir: true</span></span><span>
</span></span>
  1. Passer par une variable hyperglobale $ _env

Sous certaines configurations (en fonction du paramètre Variables_Order dans php.ini ), la valeur définie par Putenv est synchronisée à $ _env .

 <span><span><span class="hljs-title function_ invoke__">putenv</span></span><span>(</span><span><span class="hljs-string">"API_KEY=123456"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$_ENV</span></span><span>[</span><span><span class="hljs-string">"API_KEY"</span></span><span>]; </span><span><span class="hljs-comment">// Si activé,Sortir: 123456</span></span><span>
</span></span>

Il convient de noter que différents environnements de serveurs et configurations PHP peuvent affecter la disponibilité de $ _env , il est donc recommandé d'utiliser GETENV () pour assurer la compatibilité.


3. Scénarios d'application dans les applications Web

  1. Distinguer l'environnement de fonctionnement

     <span><span><span class="hljs-title function_ invoke__">putenv</span></span><span>(</span><span><span class="hljs-string">"APP_ENV=development"</span></span><span>);
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">getenv</span></span><span>(</span><span><span class="hljs-string">"APP_ENV"</span></span><span>) === </span><span><span class="hljs-string">"development"</span></span><span>) {
        </span><span><span class="hljs-title function_ invoke__">error_reporting</span></span><span>(E_ALL);
        </span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">"display_errors"</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>);
    } </span><span><span class="hljs-keyword">else</span></span><span> {
        </span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">"display_errors"</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>);
    }
    </span></span>
  2. Gestion de la configuration de la base de données

     <span><span><span class="hljs-title function_ invoke__">putenv</span></span><span>(</span><span><span class="hljs-string">"DB_HOST=127.0.0.1"</span></span><span>);
    </span><span><span class="hljs-title function_ invoke__">putenv</span></span><span>(</span><span><span class="hljs-string">"DB_USER=root"</span></span><span>);
    </span><span><span class="hljs-title function_ invoke__">putenv</span></span><span>(</span><span><span class="hljs-string">"DB_PASS=secret"</span></span><span>);
    
    </span><span><span class="hljs-variable">$pdo</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">PDO</span></span><span>(
        </span><span><span class="hljs-string">"mysql:host="</span></span><span> . </span><span><span class="hljs-title function_ invoke__">getenv</span></span><span>(</span><span><span class="hljs-string">"DB_HOST"</span></span><span>),
        </span><span><span class="hljs-title function_ invoke__">getenv</span></span><span>(</span><span><span class="hljs-string">"DB_USER"</span></span><span>),
        </span><span><span class="hljs-title function_ invoke__">getenv</span></span><span>(</span><span><span class="hljs-string">"DB_PASS"</span></span><span>)
    );
    </span></span>
  3. Protection sensible de l'information <br> Stockez les clés API, les jetons de service tiers, etc. dans les variables d'environnement pour éviter le code dur dans le code et améliorer la sécurité.


4. Précautions et meilleures pratiques

  1. Gamme d'action

    • Les variables d'environnement définies par PUTENV ne sont valables que pour le processus PHP actuel et ne seront pas persistées dans l'environnement système.

    • Si vous souhaitez que les variables d'environnement restent valides après le redémarrage du serveur, vous devez le définir via le fichier de configuration du système d'exploitation (tel que .Bashrc ou .env File).

  2. compatibilité

    • Les performances sont cohérentes en mode CLI et en mode Web, mais certains environnements gérés peuvent avoir des limites à PUTENV .

  3. Pratiques recommandées

    • Utilisez des fichiers .env + chargeurs PHP (tels que Vlucas / PhpDotenv Library) pour gérer uniformément les variables d'environnement.

    • Obtenez des variables uniquement via GETENV dans le code, en évitant le codage dur.