
dotenv4delphi هي مكتبة لاستخدام ملفات .env في Delphi/Lazarus. يمكنك أيضًا الحصول على متغيرات البيئة بطريقة سهلة وسريعة للغاية.
أحدث إصدار من dotenv4delphi هو 1.4.0
تم تنفيذ ميزات جديدة:
app . listen ( process . env . PORT || 3000 ) ;THorse.Listen(DotEnv.PortOrDefault( 3000 ));المزيد من الميزات قادمة وطلبات الميزات الجديدة موضع ترحيب في صفحة المشكلات.
لتكون قادرًا على استخدام dotenv4delphi ، يجب عليك تثبيت lib. هناك طريقتان بسيطتان للقيام بذلك. أولاً ، يمكنك نسخ وحدة dotenv4delphi.pas من مجلد SRC إلى مجلد مصدر مشروعك.
هناك طريقة أخرى لاستخدام مدرب Manager Package. إذا قمت بذلك ، يمكنك ببساطة فتح مجلد مشروعك ، وتهيئة رئيسه (يمكنك القيام بذلك مع boss init ) ثم استخدام سطر الأوامر التالي للحصول على DTOENV4Delphi كاعتماد على مشروعك:
boss install https://github.com/rafael-figueiredo-alves/DotEnv4Delphiبعد تثبيت الوحدة (عن طريق نسخ الملف أو استخدام BOSS لتثبيته كاعتماد) ، للبدء في استخدام Dotenv4Delphi ، تحتاج إلى إعلان وحدة dotenv4delphi.pas في شرط الاستخدامات . نظرًا لأنه يستخدم نمط Singleton ، فإننا نوصيك بوضع الوحدة في الوحدة (أو الوحدات) حيث ستحتاج إلى الحصول على متغيرات ، كما هو الحال في وحدة قاعدة البيانات أو في وحدة فئة تحصل على بيانات من واجهة برمجة تطبيقات REST.
إذا كنت ترغب في الحصول على قيمة متغير البيئة مثل AppData (تحصل على مسار بيانات التطبيق) ، فيمكنك القيام بذلك عن طريق استخدام الدالة GetEnvironmentVariable('APPDATA') أو ، باستخدام dotenv4delphi ، يمكنك القيام بذلك بنفس الطريقة التي ستحصل عليها من ملف .env :
Memo1.Lines.Add(DotEnv.Env( ' appdata ' )); من الكود أعلاه ، تحصل على متغير بيئة النظام APPDATA وكتابة قيمته في خط TMEMO. لذا ، فإن الشيء الوحيد الذي عليك القيام به للحصول على القيمة هو: DotEnv.Env('APPDATA'); . إنه يعيد دائمًا سلسلة يمكن أن تكون فارغة أم لا ، اعتمادًا على وجود المتغير أم لا. تحاول الطريقة قراءة المتغير من النظام ، وإذا لم يجدها ، فهي تبدأ في البحث عنها في ملف .env . بسيط ، أليس كذلك؟
يمكنك أيضًا الاستفادة من Tenvvar Enum من وحدة dotenv4delphi. هناك جميع متغيرات بيئة النظام وبعضها إضافي يتم استخدامه بشكل شائع في ملفات .env من أمثلة JavaScript. انظر مدى سهولة الحصول على القيمة:
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 ، ولكن يجب أن تتذكر أن المكتبة تبحث عنها أولاً في النظام افتراضيًا ، ولكن يمكنك تغييرها أثناء تعلمها.
.env
يشق هذا التنفيذ بشكل وثيق التنسيق الموصوف من قبل حزمة dotenv الأصلية ، لكنه ليس مباراة مباشرة (حسب التصميم).
عادةً ما يتم تنسيق ملف dotenv ( .env ) في أزواج قيمة مفاتيح بسيطة:
S3_BUCKET=YOURS3BUCKET
SECRET_KEY=YOURSECRETKEYGOESHERE من أجل قابلية النقل (والعقل) ، يجب أن تتكون أسماء متغيرات البيئة فقط من الحروف والأرقام ، والسطح السفلي ( _ ) ويجب ألا تبدأ برقم. في Regex-Speak ، يجب أن تتطابق الأسماء مع النمط التالي:
[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 " يشير رمز Hash-Tag # إلى تعليق عندما يكون على خطه الخاص أو عندما يتبع قيمة مقتبسة. لا يتم التعامل معها كتعليق عندما يظهر ضمن عروض الأسعار.
# This is a comment
SECRET_KEY=YOURSECRETKEYGOESHERE # also a comment
SECRET_HASH= " something-with-a-hash-#-this-is-not-a-comment " شيء جيد في ملفات .env هو أنك لا (ولا يجب عليك) إرسالها إلى ريبو GitHub الخاص بك. للقيام بذلك ، قم بتضمين السطر التالي في .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);
إذا قمت بتعيين كاذبة ، فستستخدم كلاهما ، متغيرات بيئة النظام ومتغيرات ملف .ENV. ينطبق الشيء نفسه إذا قمت بتمرير سلسلة فارغة إلى المسار إذا كنت تريد استخدام المسار الافتراضي.
تذكر: لا تحتاج إلى استخدام dotenv.config () إذا كنت لا ترغب في تغيير المسار أو تعيين لاستخدام ملف .env فقط. وفي أي وقت تستخدم فيه هذا السطر ، ستغير التكوين الافتراضي والسابقين.
أعتقد أن مكتبة dotenv4delphi متوافقة مع أي إصدار من Delphi منذ Delphi Xe2 وربما لازاروس أيضًا. أنظمة التشغيل هي نفسها التي يدعمها Delphi / Lazarus.
dotenv4delphi الإصدار 1.4.0