dotenv - php版本的.env

phpdotenv擴展地址:添加鏈接描述

通過.env加載環境變量並且能夠自動通過getenv(),ENV_ENV和_SERVER自動調用。

爲什麼是 .env?
你不能在代碼中存儲任何的 敏感/賬號 數據. 存儲 在環境中存儲配置 是 12-factors的一項規則. 在部署中可能變化的所有的內容 – 諸如數據庫認證或者第三方服務的認證應該從代碼中剝離出來.也就是環境變量的概念.

廣義上來說,一個.env文件是加載自定義配置的一個簡單的方法, 這樣你的應用不需要修改 .htaccess 文件或者 Apache/nginx 虛擬主機. 這意味着你不需要編輯項目之外的任何文件,並且所有的環境變量都配置完整了, 無論你運行在 Apache, Nginx, CLI 還是 PHP 5.4 上內建的web服務器上. 這是一個所知的設置環境變量最簡單的方法, 你會喜歡上它的.

使用composer安裝
curl -s http://getcomposer.org/installer \ php
php composer.phar require vlucas/phpdotenv

使用方法:
.env 文件通常不包含在版本控制內, 它可能包含敏感的 API Key 或者 密碼. 所有需要環境變量定義(不敏感的定義)的項目都需要創建一個 .env.example 文件, 這個環境變量包含他們自己定義的環境變量或者聯合開發包含的環境變量. 項目合作開發者可以獨立的複製 .env.example 並且重命名爲 .env , 並且修改爲正確的本地環境配置, 存儲密碼key或者提供他們必要的值. 在這個使用方法中 .env 文件應該添加到 .gitignore 文件中並且永遠不會被項目的合作者簽入/簽出. 這個方法確保裏邊沒有敏感的 API Key 或者 密碼在版本控制中出現從而減少了安全風險. 並且開發環境中的配置永遠不會告知合作開發者.

添加配置到根目錄下的 .env 文件, 確保 .env 文件添加到 .gitignore 從而不會簽入到 CVS。

S3_BUCKET=dotenv
SECRET_KEY=souper_seekret_key

現在創建一個 .env.example 文件, 並且簽入到項目中. 這裏配置和環境變量你需要設置的可以留空或者設置一些無關緊要的數據. 這個方法告知人們這些數據是必須的, 但是不會提供真正環境中的數據.

S3_BUCKET=devbucket
SECRET_KEY=abc123

你可以使用以下一行代碼加載應用中的 .env 文件:

Dotenv::load(__DIR__);

所有定義的變量都可以通過 getenv 方法訪問到, 並且也可以使用超全局變量$_ENV 和 $_SERVER訪問到.

$s3_bucket = getenv('S3_BUCKET');
$s3_bucket = $_ENV['S3_BUCKET'];
$s3_bucket = $_SERVER['S3_BUCKET'];

你同樣可以使用框架的 Request 類來訪問這些變量(如果你使用框架)

$s3_bucket = $request->env('S3_BUCKET');
$s3_bucket = $request->getEnv('S3_BUCKET');
$s3_bucket = $request->server->get('S3_BUCKET');
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章