
DOTENV4DELPHI เป็นไลบรารีที่ใช้ไฟล์ . ENV ใน Delphi/Lazarus นอกจากนี้คุณยังสามารถรับตัวแปรสภาพแวดล้อมได้อย่างง่ายดายและรวดเร็ว
เวอร์ชันล่าสุดของ Dotenv4delphi คือ 1.4.0
มีการใช้คุณสมบัติใหม่:
app . listen ( process . env . PORT || 3000 ) ;THorse.Listen(DotEnv.PortOrDefault( 3000 ));คุณสมบัติเพิ่มเติมกำลังจะมาถึงและคำขอคุณสมบัติใหม่ยินดีต้อนรับในหน้าปัญหา
เพื่อให้สามารถใช้ dotenv4delphi คุณต้องติดตั้ง lib มีสองวิธีง่ายๆในการทำ ก่อนอื่นคุณสามารถคัดลอกหน่วย DOTENV4DELPHI.PAS จากโฟลเดอร์ SRC ไปยังโฟลเดอร์ต้นทางของโครงการของคุณ
อีกวิธีหนึ่งคือการใช้เจ้านายผู้จัดการแพ็คเกจ หากคุณทำเช่นนั้นคุณสามารถเปิดโฟลเดอร์โครงการของคุณได้เริ่มต้นเจ้านาย (คุณสามารถทำได้ด้วย boss init ) จากนั้นใช้บรรทัดคำสั่งต่อไปนี้เพื่อรับ DTOENV4DELPHI เป็นการพึ่งพาโครงการของคุณ:
boss install https://github.com/rafael-figueiredo-alves/DotEnv4Delphiหลังจากติดตั้งเครื่อง (โดยการคัดลอกไฟล์หรือใช้ BOSS เพื่อติดตั้งเป็นการพึ่งพา) เพื่อเริ่มใช้ DOTENV4DELPHI คุณต้องประกาศหน่วย DOTENV4DELPHI.PAS ใน ประโยคการใช้งาน เนื่องจากใช้รูปแบบ Singleton เราขอแนะนำให้คุณใส่หน่วยในหน่วย (หรือหน่วย) ซึ่งคุณจะต้องได้รับตัวแปรเช่นในโมดูลฐานข้อมูลหรือในหน่วยคลาสที่คุณได้รับข้อมูลจาก REST API
หากคุณต้องการได้รับค่าของตัวแปรสภาพแวดล้อมเช่น 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 (aka "dotenv") จัดเก็บคู่คีย์-ค่าในรูปแบบที่สืบเชื้อสายมาจากไฟล์ bash ง่าย ๆ ที่ส่งออกตัวแปรสภาพแวดล้อม
การใช้งานนี้แยกออกจากรูปแบบที่อธิบายโดยแพ็คเกจ 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 " สัญลักษณ์แฮช-แท็กหมายถึงความคิดเห็นเมื่ออยู่ในบรรทัดของตัวเองหรือเมื่อตามค่าที่ยกมา มันไม่ได้รับการปฏิบัติเป็นความคิดเห็นเมื่อปรากฏภายในคำพูด
# This is a comment
SECRET_KEY=YOURSECRETKEYGOESHERE # also a comment
SECRET_HASH= " something-with-a-hash-#-this-is-not-a-comment " สิ่งที่ดีเกี่ยวกับไฟล์. ENV คือคุณไม่ได้ (และคุณต้องไม่) ส่งพวกเขาไปยัง repo 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 และ Lazarus เช่นกัน ระบบปฏิบัติการได้รับการสนับสนุนโดย Delphi / Lazarus เดียวกัน
Dotenv4delphi เวอร์ชัน 1.4.0