PHP dotenv 本身不支持加密存儲環境變量。但是,您可以使用其他方法來實現這個目標。
一種方法是在加載環境變量之前對其進行解密。例如,您可以使用一個加密的配置文件,然后在加載到 dotenv 之前對其進行解密。這里有一個簡單的示例:
defuse/php-encryption
庫來處理加密和解密操作:composer require defuse/php-encryption
創建一個加密的配置文件(例如 config.enc
)并將加密的環境變量存儲在其中。
在加載 dotenv 之前,使用 defuse/php-encryption
對配置文件進行解密:
<?php
require 'vendor/autoload.php';
use Defuse\Crypto\Key;
use Defuse\Crypto\Crypto;
// 從安全位置加載加密密鑰
$key = Key::loadFromAsciiSafeString('your-encryption-key');
// 讀取加密的配置文件
$encryptedConfig = file_get_contents('path/to/config.enc');
// 解密配置文件
$decryptedConfig = Crypto::decrypt($encryptedConfig, $key);
// 將解密的內容寫入一個臨時文件
file_put_contents('path/to/temp-config', $decryptedConfig);
// 加載臨時文件到 dotenv
$dotenv = Dotenv\Dotenv::createImmutable('path/to/temp-config');
$dotenv->load();
// 刪除臨時文件
unlink('path/to/temp-config');
這樣,您就可以在不直接修改 PHP dotenv 庫的情況下實現加密存儲環境變量的功能。請注意,這個示例僅用于演示目的,您可能需要根據您的項目需求進行調整。