Nachdem wir die Umgebungsvariable festgelegt haben, müssen wir sie häufig im Programm lesen. Es gibt zwei Möglichkeiten zu verwenden:
Holen Sie sich Getenv () durch 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">// Ausgabe: true</span></span><span>
</span></span>
Durchstieg durch $ _env Hyperglobal -Variable
Unter bestimmten Konfigurationen (abhängig von der Einstellung variablen_order in php.ini ) wird der von Putenv festgelegte Wert auf $ _env synchronisiert.
<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">// Wenn aktiviert,Ausgabe: 123456</span></span><span>
</span></span>
Es ist zu beachten, dass verschiedene Serverumgebungen und PHP -Konfigurationen die Verfügbarkeit von $ _env beeinflussen können. Daher wird empfohlen , Getenv () zu verwenden, um die Kompatibilität sicherzustellen.
Unterscheiden Sie die Betriebsumgebung
<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>
Datenbankkonfigurationsverwaltung
<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>
Sensibler Informationsschutz <br> Speichern Sie API-Schlüssel, Service-Token von Drittanbietern usw. in Umgebungsvariablen, um Hartcode im Code zu vermeiden und die Sicherheit zu verbessern.
Aktionsbereich
Die von Putenv festgelegten Umgebungsvariablen sind nur für den aktuellen PHP -Prozess gültig und werden nicht in die Systemumgebung bestehen.
Wenn Sie möchten, dass die Umgebungsvariablen nach dem Neustart des Servers gültig bleiben, sollten Sie sie über die Konfigurationsdatei des Betriebssystems festlegen (z. B. .bashrc oder .env -Datei).
Kompatibilität
Die Leistung ist im CLI -Modus und im Webmodus konsistent, aber einige verwaltete Umgebungen können Einschränkungen für Putenv aufweisen.
Empfohlene Praktiken
Verwenden Sie .EnV -Dateien + PHP -Loader (z. B. VLUCAS/PHPDOTENV -Bibliothek), um Umgebungsvariablen einheitlich zu verwalten.
Holen Sie sich Variablen nur durch Getenv im Code und vermeiden Sie die harte Codierung.