dotenv php是一款非常實用的開發工具,他可以幫助我們把本地的環境變量配置文件加載到PHP應用中,這樣可以不必將敏感信息公開在GitHub等平臺,更重要的是將開發人員與運營人員的責任分明,而不會導致應用出現故障。
我們可以使用composer安裝Dotenv:
composer require vlucas/phpdotenv
安裝完Dotenv,我們就可以在項目根目錄下創建一個.env文件,比如下面一個例子:DB_HOST=localhost
DB_DATABASE=mydatabase
DB_USERNAME=myusername
DB_PASSWORD=mypassword
在.env文件中,我們可以定義各種需要在PHP應用中使用的環境變量和敏感信息,應用只需要通過Dotenv獲取并使用即可。
當然,在實際應用中,我們可能需要獲取多個環境變量值。如何使用dotenv php獲取多個環境變量呢?下面是一個簡單的示例:use Dotenv\Dotenv;
$dotenv = Dotenv::createImmutable(__DIR__);
$dotenv->load();
$db_host = $_ENV['DB_HOST'];
$db_database = $_ENV['DB_DATABASE'];
$db_username = $_ENV['DB_USERNAME'];
$db_password = $_ENV['DB_PASSWORD'];
通過上面的代碼,我們成功獲取了.env文件中定義的四個環境變量值。代碼比較簡單清晰,而且使用了.env文件中的信息,避免了在代碼中泄露敏感信息的問題。
有時候,我們需要對.env文件中的某些環境變量進行解密之后再使用。如果這些環境變量是一些賬號密碼等敏感信息,進行一定的加密是非常必要的。
我們可以使用Dotenv的encrypt命令對.env文件中的敏感信息進行加密,在應用時,再解密并使用這些值。加解密的過程非常簡單,下面是一個示例代碼:use Dotenv\Dotenv;
$dotenv = Dotenv::createMutable(__DIR__);
$dotenv->load();
// 加密
$dotenv->encrypt('DB_PASSWORD');
$dotenv->save();
// 解密
echo sodium_crypto_secretbox_open($_ENV['DB_PASSWORD'], hex2bin(getenv('APP_KEY')), hex2bin(getenv('APP_NONCE')));
上面的代碼中,我們首先導入Dotenv,并通過createMutable方法加載.env文件,使其變為可修改的狀態。
接著,我們通過encrypt命令對DB_PASSWORD進行加密,然后通過save方法將.env文件保存起來。
在實際使用中,我們通過sodium_crypto_secretbox_open方法解密.env文件中的密碼環境變量,這個方法需要傳入三個參數:加密后的密碼、應用密鑰和隨機數。
需要注意的是,在調用sodium_crypto_secretbox_open方法之前,需要確保已經安裝了Sodium擴展,否則會導致方法調用失敗。
總之,dotenv php是一款非常實用的開發工具,可以極大地簡化應用開發過程中敏感信息的管理。我們只需要在.env文件中定義環境變量的值,就可以在應用中輕松調用,非常方便。同時,使用dotenv php還可以避免將敏感信息泄露在代碼中,保障應用的安全性。上一篇dopost php