環境変数を設定した後、プログラムで読む必要があることがよくあります。使用するには2つの方法があります。
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">// 出力: true</span></span><span>
</span></span>
$ _ENV Hyperglobal変数を通過します
特定の構成( php.iniの変数_order設定に応じて)では、 putenvによって設定された値は$ _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">// 有効になっている場合,出力: 123456</span></span><span>
</span></span>
異なるサーバー環境とPHP構成が$ _ENVの可用性に影響する可能性があることに注意する必要があるため、 getENV()を使用して互換性を確保することをお勧めします。
動作環境を区別します
<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>
データベース構成管理
<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>
機密情報保護<br> APIキー、サードパーティのサービストークンなどを環境変数に保存して、コードのハードコードを回避し、セキュリティを強化します。
アクションの範囲
PutenVによって設定された環境変数は、現在のPHPプロセスに対してのみ有効であり、システム環境に持続することはありません。
サーバーの再起動後も環境変数を有効に保つ必要がある場合は、オペレーティングシステム構成ファイル( .bashrcまたは.envファイルなど)を介して設定する必要があります。
互換性
パフォーマンスはCLIモードとWebモードで一貫していますが、一部の管理環境にはPutenvに制限がある場合があります。
推奨されるプラクティス
.ENVファイル + PHPローダー( VLUCAS/PHPDOTENVライブラリなど)を使用して、環境変数を均一に管理します。
ハードコーディングを避けて、コード内のgetENVを使用して変数を取得します。