
Dotenv4Delphi est une bibliothèque pour utiliser des fichiers .env dans Delphi / Lazarus. Vous pouvez également obtenir des variables d'environnement d'une manière très facile et rapide.
La dernière version de Dotenv4delphi est 1.4.0
Nouvelles fonctionnalités implémentées:
app . listen ( process . env . PORT || 3000 ) ;THorse.Listen(DotEnv.PortOrDefault( 3000 ));D'autres fonctionnalités arrivent et de nouvelles demandes de fonctionnalités sont les bienvenues sur la page des problèmes.
Pour pouvoir utiliser le Dotenv4delphi, vous devez installer la lib. Il existe deux façons simples de le faire. Tout d'abord, vous pouvez copier l'unité Dotenv4delphi.pas du dossier SRC au dossier source de votre projet.
Une autre façon consiste à utiliser le boss du gestionnaire de packages. Si vous le faites, vous pouvez simplement ouvrir le dossier de votre projet, initialiser le boss (vous pouvez le faire avec boss init ), puis utiliser la ligne de commande suivante pour obtenir dtoenv4delphi comme dépendance de votre projet:
boss install https://github.com/rafael-figueiredo-alves/DotEnv4DelphiAprès avoir installé l'unité (en copiant le fichier ou en utilisant le boss pour l'installer comme dépendance), pour commencer à utiliser l'unité Dotenv4Delphi, vous devez déclarer l'unité Dotenv4delphi.pas dans la clause Utilisation . Puisqu'il utilise le modèle Singleton, nous vous recommandons de mettre l'unité dans l'unité (ou les unités) où vous devrez obtenir des variables, comme dans un module de base de données ou dans une unité de classe que vous obtenez des données d'une API REST.
Si vous souhaitez obtenir la valeur d'une variable d'environnement comme AppData (vous obtenez le chemin d'accès des données de l'application), vous pouvez le faire en utilisant la fonction GetEnvironmentVariable('APPDATA') ou, en utilisant le Dotenv4Delphi, vous pouvez le faire de la même manière que vous allez l'obtenir à partir d'un fichier .env :
Memo1.Lines.Add(DotEnv.Env( ' appdata ' )); À partir du code ci-dessus, vous obtenez la variable de l'environnement système AppData et écrivez sa valeur dans une ligne TMEMO. Ainsi, la seule chose que vous devez faire pour obtenir la valeur est: DotEnv.Env('APPDATA'); . Il renvoie toujours une chaîne qui peut être vide ou non, selon que la variable existe ou non. La méthode essaie de lire la variable du système et, si elle ne le trouve pas, elle commence à le rechercher dans le fichier .env . Simple, n'est-ce pas?
Vous pouvez également profiter de l'énumération Tenvvar de l'unité Dotenv4Delphi. Il existe toutes les variables d'environnement système et certains supplémentaires qui sont couramment utilisés dans les fichiers .env à partir d'exemples JavaScript. Voyez à quel point il est facile d'obtenir la valeur:
Memo1.Lines.Add(DotEnv.Env(tenvVar.ALLUSERSPROFILE));ou
Memo1.Lines.Add(DotEnv.Env(ALLUSERSPROFILE));Obtenir des valeurs des variables d'un fichier .env est un morceau de gâteau. Vous n'avez qu'à faire de même que vous avez appris en obtenant une variable système.
Memo1.Lines.Add(DotEnv.Env( ' MeuNome ' ));Dans l'exemple ci-dessus, comme il n'y a pas de variable appelée "Meunome" dans les variables d'environnement système, la bibliothèque essaie de l'obtenir à partir d'un fichier .env qui devrait être stocké dans le même dossier que le fichier exécutable de votre application (dans le même dossier que votre application). S'il n'y a pas de fichier .env, le code ci-dessus renvoie une chaîne vide. Vous pouvez également utiliser le Tenvvar Enum, mais vous devez vous rappeler que la bibliothèque la recherche d'abord dans le système par défaut, mais vous pouvez le modifier comme vous apprendrez Bellow.
.env Les fichiers (aka "dotenv") stockent des paires de valeurs clés dans un format descendu à partir de fichiers bash simples qui exportaient les variables d'environnement.
Cette implémentation s'accroche étroitement au format décrit par le package DoTenv d'origine, mais ce n'est pas une correspondance directe (par conception).
En règle générale, un fichier dotenv ( .env ) est formaté en paires de valeurs clés simples:
S3_BUCKET=YOURS3BUCKET
SECRET_KEY=YOURSECRETKEYGOESHERE Par souci de portabilité (et de santé mentale), les noms de variables d'environnement doivent être constitués uniquement de lettres, de chiffres et de soulignement ( _ ) et ne doivent pas commencer par un chiffre. Dans Regex-Speak, les noms doivent correspondre au modèle suivant:
[a-za-z _] + [a-za-z0-9 _] *
Les valeurs sont à droite du signe égal. Ils peuvent être cités. L'utilisation de guillemets simples ou doubles empêchera les variables d'être interpolées.
SIMPLE=xyz123
INTERPOLATED= " MultiplenLines and variable substitution: ${SIMPLE} "
NON_INTERPOLATED='raw text without variable interpolation'Les valeurs laissées non citées interpoleront les variables dans la syntaxe $ {var}. Cela peut être utile pour référencer les variables de l'environnement système existantes ou pour référencer les variables précédemment analysées.
Par exemple:
USER=admin
EMAIL=${USER} @ example.orgSi vos valeurs doivent conserver $ {} dans leur sortie, enveloppez la valeur en devis ou doubles, par exemple:
PASSWORD='! @ G0${k}k'
PASSWORD_API= " !@G0${k}k " Le symbole de hash-tag # désigne un commentaire lorsqu'il est sur sa propre ligne ou lorsqu'il suit une valeur citée. Il n'est pas traité comme un commentaire lorsqu'il apparaît dans les citations.
# This is a comment
SECRET_KEY=YOURSECRETKEYGOESHERE # also a comment
SECRET_HASH= " something-with-a-hash-#-this-is-not-a-comment " Une bonne chose à propos des fichiers .env est que vous ne les envoyez pas (et vous ne devez pas) les envoyer à votre répension GitHub. Pour le faire, incluez la ligne suivante dans le .gitignore:
# DotEnv environment variables during Development
.env
AVERTISSEMENT: Si votre .env fait déjà partie de votre référentiel GIT, l'ajouter à .gitignore ne le supprimera pas. Dans ce cas, vous devrez également dire à Git d'arrêter de suivre .env.
En raison de cela, il est fortement recommandé d'ajouter un fichier .env-exemple pour montrer aux autres ce qu'ils devraient implémenter seuls .env pour faire fonctionner votre projet.
Pour définir un chemin différent vers le fichier .env, utilisez simplement la commande suivante:
DotEnv.Config('D:Meus ProjetosDotEnv4DelphiDemoWin32Debug.env');
ou
DotEnv.Config('D:Meus ProjetosDotEnv4DelphiDemo.env');
Dans certains cas, vous devez seulement obtenir des variables de votre fichier .env. Dans ce cas, vous pouvez utiliser la ligne suivante:
DotEnv.Config(True);
Si vous souhaitez définir un chemin différent et également défini pour en tirer des variables, incluez simplement la ligne suivante:
DotEnv.Config('D:Meus ProjetosDotEnv4DelphiDemo.env', True);
Si vous définissez False, vous utiliserez les deux, les variables d'environnement système et les variables de fichiers .env. Il en va de même si vous passez une chaîne vide sur le chemin si vous souhaitez utiliser le chemin par défaut.
N'oubliez pas: vous n'avez pas besoin d'utiliser dotenv.config () si vous ne souhaitez pas modifier le chemin d'accès ou défini pour utiliser uniquement le fichier .env. Et chaque fois que vous utilisez cette ligne, vous modifierez la configuration par défaut et précédente.
Je suppose que la bibliothèque Dotenv4delphi est compatible avec n'importe quelle version de Delphi depuis Delphi Xe2 et probablement Lazarus. Les systèmes d'exploitation sont les mêmes pris en charge par Delphi / Lazarus.
DOTENV4DELPHI Version 1.4.0