
DOTENV4DELPHI ist eine Bibliothek für .Env -Dateien in Delphi/Lazarus. Sie können auch Umgebungsvariablen auf sehr einfache und schnelle Weise erhalten.
Die neueste Version von DOTENV4DELPHI ist 1.4.0
Neue Funktionen implementiert:
app . listen ( process . env . PORT || 3000 ) ;THorse.Listen(DotEnv.PortOrDefault( 3000 ));Weitere Funktionen kommen und neue Feature -Anfragen sind auf der Seite der Ausgaben willkommen.
Um das Dotenv4Delphi verwenden zu können, müssen Sie die LIB installieren. Es gibt zwei einfache Möglichkeiten, dies zu tun. Zunächst können Sie das dotenv4delphi.pas -Gerät aus dem SRC -Ordner in den Quellordner Ihres Projekts kopieren.
Eine andere Möglichkeit besteht darin, den Paket -Manager -Chef zu verwenden. Wenn Sie dies tun, können Sie einfach den Ordner Ihres Projekts öffnen, Boss initialisieren (Sie können dies mit boss init tun) und dann die folgende Befehlszeile verwenden, um DTOEnv4Delphi als Abhängigkeit Ihres Projekts zu erhalten:
boss install https://github.com/rafael-figueiredo-alves/DotEnv4DelphiNach der Installation des Geräts (durch Kopieren der Datei oder Verwenden von Boss, um sie als Abhängigkeit zu installieren), müssen Sie die DOTenv4Delphi.pas -Einheit in der Verwendungsklausel deklarieren. Da es das Singleton -Muster verwendet, empfehlen wir Ihnen, das Gerät in das Gerät (oder die Einheiten) einzulegen, in dem Sie Variablen erhalten müssen, wie in einem Datenbankmodul oder in einer Klasseneinheit, die Daten von einer REST -API erhalten.
Wenn Sie den Wert einer Umgebungsvariablen wie AppData erhalten möchten (Sie erhalten den Pfad der App -Daten), können Sie dies tun, indem Sie die Funktion GetEnvironmentVariable('APPDATA') verwenden oder mithilfe der dotenv4delphi dieselbe Weise, wie Sie sie von einer .Env -Datei erhalten, aus einer .Env -Datei erhalten können:
Memo1.Lines.Add(DotEnv.Env( ' appdata ' )); Aus dem obigen Code erhalten Sie die Systemumgebungsvariable AppData und schreiben ihren Wert in eine TMEMO -Zeile. Das einzige, was Sie tun müssen, um den Wert zu erhalten, ist: DotEnv.Env('APPDATA'); . Es gibt immer eine Zeichenfolge zurück, die leer sein kann oder nicht, je nachdem, ob die Variable existiert oder nicht. Die Methode versucht, die Variable aus dem System zu lesen, und wenn sie sie nicht findet, sucht sie in der .env -Datei danach. Einfach, nicht wahr?
Sie können auch von der Tenvvar Enum von der DOTenv4Delphi -Einheit ausnutzen. Es gibt alle Systemumgebungsvariablen und einige zusätzliche, die häufig in .EnV -Dateien aus JavaScript -Beispielen verwendet werden. Sehen Sie, wie einfach es ist, den Wert zu erhalten:
Memo1.Lines.Add(DotEnv.Env(tenvVar.ALLUSERSPROFILE));oder
Memo1.Lines.Add(DotEnv.Env(ALLUSERSPROFILE));Das Erhalten von Werten aus Variablen aus einer .EnV -Datei ist ein Kinderspiel. Sie müssen nur das Gleiche tun, was Sie aus einer Systemvariablen gelernt haben.
Memo1.Lines.Add(DotEnv.Env( ' MeuNome ' ));Im obigen Beispiel, da es keine Variable namens "Meunome" in den Systemumgebungsvariablen gibt, versucht die Bibliothek, sie von einer .env -Datei zu erhalten, die in demselben Ordner wie die ausführbare Datei Ihrer App gespeichert werden sollte (im selben Ordner wie Ihre App). Wenn es keine .Env -Datei gibt, gibt der obige Code eine leere Zeichenfolge zurück. Sie können auch den Tenvvar Enum verwenden, aber Sie sollten sich daran erinnern, dass die Bibliothek standardmäßig im System sucht, aber Sie können sie ändern, während Sie Bellow lernen werden.
.env Dateien (auch bekannt als "dotenv") speichern Schlüsselwertpaare in einem Format, das von einfachen Bash-Dateien abgestimmt wurde, die Umgebungsvariablen exportierten.
Diese Implementierung spricht eng an das vom ursprünglichen DOTENV -Paket beschriebene Format, ist jedoch keine direkte Übereinstimmung (nach Design).
Typischerweise ist eine DOTenv ( .env ) -Datei in einfache Schlüsselwertpaare formatiert:
S3_BUCKET=YOURS3BUCKET
SECRET_KEY=YOURSECRETKEYGOESHERE Aus Gründen der Portabilität (und der Vernunft) müssen Umgebungsvariablennamen ausschließlich aus Buchstaben, Ziffern und dem Unterstrich ( _ ) bestehen und dürfen nicht mit einer Ziffer beginnen. In Regex-Speak müssen die Namen mit dem folgenden Muster übereinstimmen:
[a-za-z _]+[a-za-z0-9 _]*
Die Werte befinden sich rechts vom Gleichen Zeichen. Sie können zitiert werden. Durch die Verwendung von einzelnen oder doppelten Zitaten wird verhindert, dass Variablen interpoliert werden.
SIMPLE=xyz123
INTERPOLATED= " MultiplenLines and variable substitution: ${SIMPLE} "
NON_INTERPOLATED='raw text without variable interpolation'Werte, die nicht zeigten, interpolieren Variablen in die $ {var} -Syntax. Dies kann nützlich sein, um vorhandene Systemumgebungsvariablen zu referenzieren oder Variablen zu referenzieren, die zuvor analysiert wurden.
Zum Beispiel:
USER=admin
EMAIL=${USER} @ example.orgWenn Ihre Werte $ {} in ihrer Ausgabe aufbewahren müssen, wickeln Sie den Wert in einzelnen oder doppelten Zitate ein, z. B.:
PASSWORD='! @ G0${k}k'
PASSWORD_API= " !@G0${k}k " Das Hash-Tag # -Symbol bezeichnet einen Kommentar, wenn es in seiner eigenen Zeile oder wenn es einem angegebenen Wert folgt. Es wird nicht als Kommentar behandelt, wenn es in Zitaten erscheint.
# This is a comment
SECRET_KEY=YOURSECRETKEYGOESHERE # also a comment
SECRET_HASH= " something-with-a-hash-#-this-is-not-a-comment " Eine gute Sache an .Env -Dateien ist, dass Sie sie nicht an Ihr Github -Repo senden. Geben Sie dazu die folgende Zeile in den. Gitignore ein:
# DotEnv environment variables during Development
.env
Warnung: Wenn Ihr .Env bereits Teil Ihres Git -Repositorys ist, wird es nicht von Gitignore hinzugefügt. In diesem Fall müssen Sie Git auch sagen, dass sie aufhören sollen.
Aus diesem Grund wird dringend empfohlen, eine .Env-Beispiel-Datei hinzuzufügen, um anderen zu zeigen, was sie selbst implementieren sollten.
Verwenden Sie einfach den folgenden Befehl, um einen anderen Pfad in .EnV -Datei festzulegen:
DotEnv.Config('D:Meus ProjetosDotEnv4DelphiDemoWin32Debug.env');
oder
DotEnv.Config('D:Meus ProjetosDotEnv4DelphiDemo.env');
In einigen Fällen müssen Sie nur Variablen aus Ihrer .env -Datei erhalten. In diesem Fall können Sie die folgende Zeile verwenden:
DotEnv.Config(True);
Wenn Sie einen anderen Pfad festlegen und auch so einstellen möchten, dass nur Variablen davon abgerufen werden, geben Sie einfach die folgende Zeile an:
DotEnv.Config('D:Meus ProjetosDotEnv4DelphiDemo.env', True);
Wenn Sie auf False festlegen, verwenden Sie beide, die Variablen für Systemumgebungsvariablen und .Env -Datei. Gleiches gilt, wenn Sie eine leere Zeichenfolge an den Pfad übergeben, wenn Sie den Standardpfad verwenden möchten.
Denken Sie daran: Sie müssen dotenv.config () nicht verwenden, wenn Sie den Pfad nicht ändern oder nur so einstellen möchten, dass die Datei .Env verwendet wird. Und wenn Sie diese Zeile verwenden, ändern Sie die Standard- und vorherige Konfiguration.
Ich denke, dass die dotenv4delphi -Bibliothek seit Delphi XE2 und wahrscheinlich auch Lazarus für jede Version von Delphi kompatibel ist. Die Betriebssysteme sind die gleichen von Delphi / Lazarus unterstützt.
DOTENV4DELPHI Version 1.4.0