پیکربندی
معرفی
تمام فایل های پیکربندی چارچوب لاراول در
config
دایرکتوری ذخیره می شوند.
هر گزینه مستند است، بنابراین به راحتی می توانید فایل ها را بررسی کنید و
با گزینه های موجود در دسترس خود آشنا شوید.
پیکربندی محیط
معمولاً داشتن مقادیر پیکربندی متفاوت بر اساس محیطی که برنامه در آن اجرا می شود مفید است. برای مثال، ممکن است بخواهید از یک درایور کش متفاوت به صورت محلی نسبت به سرور تولید خود استفاده کنید.
لاراول برای این کار از کتابخانه PHP
DotEnv
توسط ونس لوکاس استفاده می کند.
در یک نصب جدید لاراول، دایرکتوری ریشه برنامه شما حاوی یک
.env.example
فایل خواهد بود.
اگر لاراول را از طریق Composer نصب کنید، این فایل به طور خودکار در کپی می
شود
.env
.
در غیر این صورت باید فایل را به صورت دستی کپی کنید.
فایل شما
.env
نباید به کنترل منبع برنامه شما متعهد شود، زیرا هر توسعه دهنده / سروری که
از برنامه شما استفاده می کند ممکن است به پیکربندی محیط متفاوتی نیاز داشته باشد.
علاوه بر این، در صورتی که یک مزاحم به مخزن کنترل منبع شما دسترسی پیدا
کند، این یک خطر امنیتی خواهد بود، زیرا هر گونه اعتبار حساس در معرض دید قرار می گیرد.
اگر در حال توسعه با یک تیم هستید، ممکن است بخواهید به اضافه کردن یک
.env.example
فایل با برنامه خود ادامه دهید.
با قرار دادن مقادیر متغیر مکان در فایل پیکربندی مثال، دیگر توسعه دهندگان
تیم شما می توانند به وضوح ببینند که کدام متغیرهای محیطی برای اجرای برنامه شما مورد نیاز است.
شما همچنین می توانید یک
.env.testing
فایل ایجاد کنید.
.env
این فایل هنگام اجرای آزمایشهای PHPUnit یا اجرای دستورات Artisan با این
گزینه، فایل را
لغو میکند
--env=testing
.
هر متغیری در
.env
فایل شما می تواند توسط متغیرهای محیط خارجی مانند متغیرهای محیطی در سطح سرور یا سطح سیستم لغو شود.
انواع متغیرهای محیطی
همه متغیرهای موجود در
.env
فایلهای شما بهعنوان رشتهها تجزیه میشوند، بنابراین برخی از مقادیر رزرو
شده ایجاد شدهاند تا بتوانید طیف وسیعتری از انواع را از
env()
تابع برگردانید:
.env
ارزش
|
env()
ارزش
|
---|---|
درست است، واقعی | (بول) درست است |
(درست است، واقعی) | (بول) درست است |
نادرست | (بول) نادرست |
(کاذب) | (بول) نادرست |
خالی | (رشته) '' |
(خالی) | (رشته) '' |
خالی | (تهی) پوچ |
(خالی) | (تهی) پوچ |
اگر نیاز به تعریف یک متغیر محیطی با مقداری دارید که حاوی فاصله است، میتوانید این کار را با قرار دادن مقدار در گیومههای دوبل انجام دهید.
APP_NAME="My Application"
بازیابی پیکربندی محیط
همه متغیرهای لیست شده در این فایل
$_ENV
زمانی که برنامه شما درخواستی دریافت می کند در PHP super-global بارگذاری
می شود.
با این حال، می توانید از
env
کمک کننده برای بازیابی مقادیر از این متغیرها در فایل های پیکربندی خود
استفاده کنید.
در واقع، اگر فایل های پیکربندی لاراول را بررسی کنید، متوجه چندین گزینه
خواهید شد که قبلاً از این کمک کننده استفاده می کنند:
'debug' => env('APP_DEBUG', false),
دومین مقدار ارسال شده به
env
تابع "مقدار پیش فرض" است.
اگر هیچ متغیر محیطی برای کلید داده شده وجود نداشته باشد از این مقدار
استفاده می شود.
تعیین محیط فعلی
محیط برنامه فعلی از طریق
APP_ENV
متغیر فایل شما تعیین می شود
.env
.
می توانید از طریق
environment
روش روی
App
نما
به این مقدار دسترسی پیدا کنید :
$environment = App::environment();
همچنین میتوانید آرگومانهایی را به
environment
متد ارسال کنید تا بررسی کنید که آیا محیط با مقدار مشخصی مطابقت دارد یا
خیر.
true
اگر محیط با هر یک از مقادیر داده شده مطابقت داشته باشد،
متد برمی گردد :
if (App::environment('local')) { // The environment is local} if (App::environment(['local', 'staging'])) { // The environment is either local OR staging...}
تشخیص محیط برنامه فعلی را می توان توسط یک
APP_ENV
متغیر محیطی در سطح سرور لغو کرد. این می تواند زمانی مفید باشد که شما نیاز به اشتراک گذاری یک برنامه مشابه برای تنظیمات محیطی مختلف دارید، بنابراین می توانید یک میزبان معین را برای مطابقت با یک محیط معین در تنظیمات سرور خود تنظیم کنید.
مخفی کردن متغیرهای محیطی از صفحات اشکال زدایی
هنگامی که یک استثنا کشف نشده باشد و
APP_DEBUG
متغیر محیطی باشد
true
، صفحه اشکال زدایی همه متغیرهای محیط و محتویات آنها را نشان می دهد.
در برخی موارد ممکن است بخواهید متغیرهای خاصی را مبهم کنید.
می توانید این کار را با به روز رسانی گزینه موجود در
فایل پیکربندی
debug_hide
خود انجام دهید.
config/app.php
برخی از متغیرها هم در متغیرهای محیطی و هم در داده های سرور/درخواست در
دسترس هستند.
بنابراین، ممکن است لازم باشد آنها را برای هر دو پنهان کنید
$_ENV
و
$_SERVER
:
return [ // ... 'debug_hide' => [ '_ENV' => [ 'APP_KEY', 'DB_PASSWORD', ], '_SERVER' => [ 'APP_KEY', 'DB_PASSWORD', ], '_POST' => [ 'password', ], ],];
دسترسی به مقادیر پیکربندی
شما می توانید به راحتی با استفاده از تابع راهنمای جهانی
config
از هر نقطه در برنامه خود به مقادیر پیکربندی خود دسترسی پیدا کنید.
مقادیر پیکربندی ممکن است با استفاده از نحو "نقطه"، که شامل نام فایل و
گزینه ای است که می خواهید به آن دسترسی داشته باشید، قابل دسترسی است.
یک مقدار پیش فرض نیز ممکن است مشخص شود و اگر گزینه پیکربندی وجود نداشته
باشد، برگردانده می شود:
$value = config('app.timezone'); // Retrieve a default value if the configuration value does not exist...$value = config('app.timezone', 'Asia/Seoul');
برای تنظیم مقادیر پیکربندی در زمان اجرا، یک آرایه را به
config
کمک کننده ارسال کنید:
config(['app.timezone' => 'America/Chicago']);
ذخیره سازی پیکربندی
برای افزایش سرعت برنامه، باید تمام فایل های پیکربندی خود را با استفاده از
config:cache
دستور Artisan در یک فایل ذخیره کنید.
این همه گزینه های پیکربندی برنامه شما را در یک فایل واحد ترکیب می کند که
به سرعت توسط فریمورک بارگذاری می شود.
شما معمولاً باید
php artisan config:cache
دستور را به عنوان بخشی از روال استقرار تولید خود اجرا کنید.
این دستور نباید در طول توسعه محلی اجرا شود زیرا گزینه های پیکربندی اغلب
در طول توسعه برنامه شما نیاز به تغییر دارند.
اگر فرمان را در طول فرآیند استقرار خود اجرا می کنید
config:cache
، باید مطمئن باشید کهenv
تابع را فقط از داخل فایل های پیکربندی خود فراخوانی می کنید. هنگامی که پیکربندی کش شد،.env
فایل بارگیری نمیشود و همه تماسهای تابعenv
برمیگردندnull
.
حالت تعمیر و نگهداری
هنگامی که برنامه شما در حالت تعمیر و نگهداری است، یک نمای سفارشی برای همه
درخواست ها در برنامه شما نمایش داده می شود.
این کار باعث میشود تا برنامه خود را در حین بهروزرسانی یا زمانی که در
حال تعمیر و نگهداری هستید، «غیرفعال» کنید.
بررسی حالت تعمیر و نگهداری در پشته میانافزار پیشفرض برای برنامه شما
گنجانده شده است.
اگر برنامه در حالت نگهداری باشد، a
MaintenanceModeException
با کد وضعیت 503 پرتاب می شود.
برای فعال کردن حالت نگهداری،
down
دستور Artisan را اجرا کنید:
php artisan down
همچنین میتوانید
message
گزینههایی
retry
را برای
down
فرمان ارائه کنید.
مقدار
message
ممکن است برای نمایش یا ثبت یک پیام سفارشی استفاده شود، در حالی که مقدار
به عنوان
مقدار هدر HTTP
retry
تنظیم می شود :
Retry-After
php artisan down --message="Upgrading Database" --retry=60
حتی در حالت نگهداری، آدرسهای IP یا شبکههای خاصی ممکن است با استفاده از
allow
گزینه دستور اجازه دسترسی به برنامه را داشته باشند:
php artisan down --allow=127.0.0.1 --allow=192.168.0.0/16
برای غیرفعال کردن حالت نگهداری، از
up
دستور زیر استفاده کنید:
php artisan up
می توانید با تعریف الگوی خود در
resources/views/errors/503.blade.php
.
حالت نگهداری و صف
در حالی که برنامه شما در حالت تعمیر و نگهداری است، هیچ کار در صف رسیدگی نمی شود. هنگامی که برنامه از حالت تعمیر و نگهداری خارج شد، کارها به صورت عادی انجام می شوند.
جایگزین های حالت تعمیر و نگهداری
از آنجایی که حالت تعمیر و نگهداری نیاز دارد که برنامه شما چندین ثانیه از کار بیفتد، جایگزین هایی مانند Envoyer را برای انجام استقرار زمان توقف صفر با لاراول در نظر بگیرید.