
Dotenv4delphi是在Delphi/Lazarus中使用.ENV文件的庫。您還可以以非常簡單快捷的方式獲取環境變量。
dotenv4delphi的最新版本是1.4.0
實施的新功能:
app . listen ( process . env . PORT || 3000 ) ;THorse.Listen(DotEnv.PortOrDefault( 3000 ));更多功能即將到來,歡迎在“問題”頁面上發出新的功能請求。
為了能夠使用dotenv4delphi,您必須安裝LIB。有兩種簡單的方法可以做到這一點。首先,您可以將dotenv4delphi.pas單元從SRC文件夾複製到項目的源文件夾。
另一種方法是使用軟件包經理老闆。如果這樣做,您可以簡單地打開項目的文件夾,初始化BOSS(可以使用boss init進行),然後使用以下命令行將DTOENV4DELPHI作為您項目的依賴性:
boss install https://github.com/rafael-figueiredo-alves/DotEnv4Delphi安裝單元後(通過複製文件或使用Boss將其作為依賴項安裝),要開始使用Dotenv4Delphi,您需要在用途子句中聲明dotenv4delphi.pas單元。由於它使用Singleton模式,因此我們建議您將單元放入需要獲取變量的單元(或單位)中,例如在數據庫模塊中或從REST API獲取數據的類單元中。
如果要獲得諸如appData (您獲得應用數據的路徑)之類的環境變量的值,則可以使用function GetEnvironmentVariable('APPDATA')或使用dotenv4delphi來完成它,您可以以同樣的方式從.env file:env file:env file:
Memo1.Lines.Add(DotEnv.Env( ' appdata ' ));從上面的代碼中,您可以獲得系統環境變量AppData並將其值在TMEMO行中寫入。因此,您唯一要做的才能獲得值是: DotEnv.Env('APPDATA'); 。它總是返回一個可以空的字符串,具體取決於變量是否存在。該方法試圖從系統中讀取變量,如果找不到該變量,它將開始在.env文件中尋找它。簡單,不是嗎?
您也可以從Dotenv4Delphi單元的Tenvvar Enum中利用。來自JavaScript示例中的.env文件中通常使用的所有系統環境變量和一些額外的變量。看看獲得價值有多容易:
Memo1.Lines.Add(DotEnv.Env(tenvVar.ALLUSERSPROFILE));或者
Memo1.Lines.Add(DotEnv.Env(ALLUSERSPROFILE));從.ENV文件中獲取變量的值是一小菜。您只需要做從獲得系統變量中學到的同樣的東西。
Memo1.Lines.Add(DotEnv.Env( ' MeuNome ' ));在上面的示例中,由於系統環境變量中沒有一個稱為“ meunome”的變量,因此庫試圖從.env文件中獲取它,該文件應與應用程序的可執行文件存儲在同一文件夾中(在與應用程序的同一文件夾中)。如果沒有.env文件,則上面的代碼將返回一個空字符串。您也可以使用Tenvvar Enum,但是您應該記住,庫默認情況下首先在系統中尋找它,但是您可以在學習Bellow時更改它。
.env
該實現與原始dotenv軟件包所描述的格式緊密切割,但這不是直接匹配(按設計)。
通常,將dotenv( .env )文件格式化為簡單的鍵值對:
S3_BUCKET=YOURS3BUCKET
SECRET_KEY=YOURSECRETKEYGOESHERE為了便攜性(和理智),環境變量名稱必須僅由字母,數字和下劃線( _ )組成,並且不得以數字開頭。在以下方面,名稱必須匹配以下模式:
[A-ZA-Z _]+[A-ZA-Z0-9 _]*
值在於符號符號的右側。他們可能被引用。使用單引號或雙引號將防止變量被插值。
SIMPLE=xyz123
INTERPOLATED= " MultiplenLines and variable substitution: ${SIMPLE} "
NON_INTERPOLATED='raw text without variable interpolation'剩下的值將在$ {var}語法中插值變量。這對於引用現有系統環境變量或引用先前解析的變量很有用。
例如:
USER=admin
EMAIL=${USER} @ example.org如果您的值必須保留其輸出中的$ {},請以單個或雙引號將值包裝,例如:
PASSWORD='! @ G0${k}k'
PASSWORD_API= " !@G0${k}k " 哈希標籤#符號在自己的行或遵循引用值時表示評論。當引號中出現時,它不會被視為評論。
# This is a comment
SECRET_KEY=YOURSECRETKEYGOESHERE # also a comment
SECRET_HASH= " something-with-a-hash-#-this-is-not-a-comment " .ENV文件的一件好事是您不(並且不得)將它們發送到GitHub repo。為此,在.gitignore中包括以下行:
# DotEnv environment variables during Development
.env
警告:如果您的.ENV已經是您的git存儲庫的一部分,則將其添加到.gitignore將不會刪除它。在這種情況下,您還需要告訴Git停止跟踪.env。
因此,強烈建議添加.ENV示例文件,以向他人展示他們應該自己實施的.ENV文件以使您的項目工作。
要為.env文件設置不同的路徑,只需使用以下命令:
DotEnv.Config('D:Meus ProjetosDotEnv4DelphiDemoWin32Debug.env');
或者
DotEnv.Config('D:Meus ProjetosDotEnv4DelphiDemo.env');
在某些情況下,您只需要從.env文件中獲取變量即可。在這種情況下,您可以使用以下行:
DotEnv.Config(True);
如果要設置不同的路徑,並且還設置為僅從中獲取變量,則只需包括以下行:
DotEnv.Config('D:Meus ProjetosDotEnv4DelphiDemo.env', True);
如果設置為false,則同時使用系統環境變量和.env文件變量。如果要使用默認路徑,如果將空字符串傳遞到路徑,也適用同樣的情況。
請記住:如果您不想更改路徑或僅使用.env文件,則不需要使用dotenv.config()。每當您使用此行時,您都會更改默認配置和上一個配置。
我想Dotenv4delphi庫與Delphi XE2以及Lazarus一樣,都與任何版本的Delphi兼容。操作系統與Delphi / Lazarus的支持相同。
dotenv4delphi版本1.4.0