
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