محیط env
متغیرهای محیطی: خواندن با گونهی درست، پروندهی .env، نمایهی اجرا و پوشاندن مقدارهای حساس.
واردسازی محیط
تنظیماتی مثل درگاه سرور، نشانی پایگاه داده و کلیدهای API بهتر است در متغیرهای محیطی باشند، نه در کد. بستهی محیط آنها را با گونهی درست میخواند و اگر نبودند مقدار پیشفرض میدهد. میتواند آنها را از پروندهی .env هم بارگذاری کند.
«نمایه» از متغیر SALAM_ENV خوانده میشود و میگوید برنامه در محیط توسعه، آزمایش یا تولید اجرا میشود.
روالها
دریافت Get
روال دریافت(name: رشته): رشتهواردسازی محیط
روال ریشه:
محیط.تنظیم("PORT"، "8080")
محیط.تنظیم("DEBUG"، "true")
محیط.تنظیم("RATIO"، "0.75")
سرچاپ محیط.دریافت("PORT")، محیط.دارد("PORT")، محیط.دارد("NOPE")
سرچاپ محیط.دریافت صحیح("PORT"، ۸۰)، محیط.دریافت صحیح("NOPE"، ۸۰)
سرچاپ محیط.دریافت منطقی("DEBUG"، نادرست)، محیط.دریافت اعشاری("RATIO"، ۱.۰)
سرچاپ محیط.دریافت با پیش فرض("HOST"، "localhost")
محیط.حذف("PORT")
سرچاپ محیط.دارد("PORT")
محیط.تنظیم("API_KEY"، "sk-1234567890abcdef")
سرچاپ محیط.پوشاندن("sk-1234567890abcdef")، محیط.دریافت پوشیده("API_KEY")
محیط.تنظیم("NAME"، "سلام")
سرچاپ محیط.گسترش("زبان ${NAME} روی درگاه ${PORT:-3000}")
پایاندریافت با پیش فرض GetOr
روال دریافت با پیش فرض(name: رشته، def: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: env-Get.salam
دارد Has
روال دارد(name: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: env-Get.salam
دریافت صحیح GetInt
روال دریافت صحیح(name: رشته، def: صحیح۶۴): صحیح۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: env-Get.salam
دریافت اعشاری GetFloat
روال دریافت اعشاری(name: رشته، def: اعشار۶۴): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: env-Get.salam
دریافت منطقی GetBool
روال دریافت منطقی(name: رشته، def: منطقی): منطقیtrue، 1 و yes درست حساب میشوند.نمونهی این مورد همراه با موارد بالاتر آمده است: env-Get.salam
تنظیم Set
روال تنظیم(name: رشته، value: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: env-Get.salam
حذف Unset
روال حذف(name: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: env-Get.salam
پوشاندن Mask
روال پوشاندن(value: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: env-Get.salam
دریافت پوشیده GetMasked
روال دریافت پوشیده(name: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: env-Get.salam
نمایه Profile
روال نمایه(): رشتهSALAM_ENV.واردسازی محیط
روال ریشه:
محیط.تنظیم("SALAM_ENV"، "production")
سرچاپ محیط.نمایه()، محیط.تولید است()، محیط.توسعه است()، محیط.آزمایش است()، محیط.آزمایشی است()
محیط.تنظیم("SALAM_ENV"، "test")
سرچاپ محیط.نمایه()، محیط.آزمایش است()
پایانتولید است IsProduction
روال تولید است(): منطقیproduction) درست است.نمونهی این مورد همراه با موارد بالاتر آمده است: env-Profile.salam
توسعه است IsDevelopment
روال توسعه است(): منطقیdevelopment) درست است.نمونهی این مورد همراه با موارد بالاتر آمده است: env-Profile.salam
آزمایش است IsTest
روال آزمایش است(): منطقیtest) درست است.نمونهی این مورد همراه با موارد بالاتر آمده است: env-Profile.salam
آزمایشی است IsStaging
روال آزمایشی است(): منطقیstaging) درست است.نمونهی این مورد همراه با موارد بالاتر آمده است: env-Profile.salam
بارگذاری Load
روال بارگذاری(path: رشته): صحیحKEY=VALUE را بارگذاری میکند، ولی متغیرهایی را که از قبل تعریف شدهاند تغییر نمیدهد. تعداد متغیرهای خواندهشده را برمیگرداند.واردسازی محیط
واردسازی ورودی خروجی
روال ریشه:
ورودی خروجی.نوشتن پرونده(".env"، "DB_HOST=localhost\nDB_PORT=5432\n# توضیح\n")
سرچاپ محیط.بارگذاری(".env")، محیط.دریافت("DB_HOST")
محیط.تنظیم("DB_PORT"، "1")
محیط.بارگذاری(".env")
سرچاپ محیط.دریافت("DB_PORT")
محیط.بارگذاری اجباری(".env")
سرچاپ محیط.دریافت("DB_PORT")
سرچاپ محیط.بارگذاری متن("A=1\nB=2")، محیط.دریافت("B")
سرچاپ محیط.بارگذاری نقطهمحیط(".env")
ورودی خروجی.نوشتن پرونده(".env.test"، "MODE=testing\n")
محیط.تنظیم("SALAM_ENV"، "test")
سرچاپ محیط.بارگذاری نمایه(".")، محیط.دریافت("MODE")
پایانبارگذاری اجباری Overload
روال بارگذاری اجباری(path: رشته): صحیحبارگذاری، ولی متغیرهای موجود را هم با مقدار پرونده جایگزین میکند.نمونهی این مورد همراه با موارد بالاتر آمده است: env-Load.salam
بارگذاری متن LoadText
روال بارگذاری متن(text: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: env-Load.salam
بارگذاری نقطهمحیط LoadDotEnv
روال بارگذاری نقطهمحیط(path: رشته): صحیح.env را بارگذاری میکند.نمونهی این مورد همراه با موارد بالاتر آمده است: env-Load.salam
بارگذاری نمایه LoadProfile
روال بارگذاری نمایه(dir: رشته): صحیح.env.نمایه را از پوشهی دادهشده بارگذاری میکند؛ مثلاً .env.test در نمایهی آزمون.نمونهی این مورد همراه با موارد بالاتر آمده است: env-Load.salam
گسترش Expand
روال گسترش(text: رشته): رشته${نام} و ${نام:-پیشفرض} را در متن با مقدار متغیرها جایگزین میکند.نمونهی این مورد همراه با موارد بالاتر آمده است: env-Get.salam