Après avoir établi la variable d'environnement, nous devons souvent le lire dans le programme. Il existe deux façons d'utiliser:
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>
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é.
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>
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>
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é.
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).
compatibilité
Les performances sont cohérentes en mode CLI et en mode Web, mais certains environnements gérés peuvent avoir des limites à PUTENV .
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.