نسخه:

پیکربندی

معرفی

تمام فایل های پیکربندی چارچوب لاراول در 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 را برای انجام استقرار زمان توقف صفر با لاراول در نظر بگیرید.