نسخه:

پیکربندی

معرفی

تمام فایل های پیکربندی چارچوب لاراول در app/config دایرکتوری ذخیره می شوند. هر گزینه در هر فایل مستند است، بنابراین به راحتی می توانید فایل ها را بررسی کنید و با گزینه های موجود در دسترس خود آشنا شوید.

گاهی اوقات ممکن است لازم باشد در زمان اجرا به مقادیر پیکربندی دسترسی داشته باشید. می توانید این کار را با استفاده از Config کلاس انجام دهید:

دسترسی به یک مقدار پیکربندی

Config::get('app.timezone');

همچنین می‌توانید یک مقدار پیش‌فرض را برای بازگشت در صورت عدم وجود گزینه پیکربندی مشخص کنید:

$timezone = Config::get('app.timezone', 'UTC');

تنظیم یک مقدار پیکربندی

توجه داشته باشید که نحو سبک "نقطه" ممکن است برای دسترسی به مقادیر در فایل های مختلف استفاده شود. همچنین می توانید مقادیر پیکربندی را در زمان اجرا تنظیم کنید:

Config::set('database.default', 'sqlite');

مقادیر پیکربندی که در زمان اجرا تنظیم می‌شوند فقط برای درخواست فعلی تنظیم می‌شوند و به درخواست‌های بعدی منتقل نمی‌شوند.

پیکربندی محیط

معمولاً داشتن مقادیر پیکربندی متفاوت بر اساس محیطی که برنامه در آن اجرا می شود مفید است. برای مثال، ممکن است بخواهید از یک درایور حافظه پنهان در دستگاه توسعه محلی خود نسبت به سرور تولید استفاده کنید. انجام این کار با استفاده از پیکربندی مبتنی بر محیط آسان است.

به سادگی یک پوشه در config دایرکتوری ایجاد کنید که با نام محیط شما مطابقت داشته باشد، مانند local . در مرحله بعد، فایل های پیکربندی را که می خواهید لغو کنید ایجاد کنید و گزینه های آن محیط را مشخص کنید. به عنوان مثال، برای نادیده گرفتن درایور کش برای محیط محلی، باید یک cache.php فایل app/config/local با محتوای زیر ایجاد کنید:

<?php
 
return array(
 
'driver' => 'file',
 
);

توجه: از «تست» به عنوان نام محیط استفاده نکنید. این برای تست واحد رزرو شده است.

توجه داشته باشید که لازم نیست هر گزینه ای را که در فایل پیکربندی پایه وجود دارد، مشخص کنید، بلکه فقط گزینه هایی را که می خواهید لغو کنید، مشخص کنید. فایل های پیکربندی محیطی بر روی فایل های پایه "آبشار" خواهند شد.

در مرحله بعد، باید به فریمورک آموزش دهیم که چگونه تعیین کند که در کدام محیط اجرا می شود. محیط پیش فرض همیشه production . با این حال، می توانید محیط های دیگری را در bootstrap/start.php فایل در ریشه نصب خود راه اندازی کنید. در این فایل شما یک $app->detectEnvironment تماس را پیدا خواهید کرد. آرایه ارسال شده به این روش برای تعیین محیط فعلی استفاده می شود. در صورت نیاز می توانید محیط ها و نام ماشین های دیگری را به آرایه اضافه کنید.

<?php
 
$env = $app->detectEnvironment(array(
 
'local' => array('your-machine-name'),
 
));

در این مثال، 'local' نام محیط و 'your-machine-name' نام میزبان سرور شما است. در لینوکس و مک، می‌توانید نام میزبان خود را با استفاده از hostname دستور ترمینال تعیین کنید.

اگر به تشخیص محیط انعطاف‌پذیرتر نیاز دارید، می‌توانید a را Closure به detectEnvironment روش ارسال کنید، که به شما امکان می‌دهد شناسایی محیط را هر طور که می‌خواهید پیاده‌سازی کنید:

$env = $app->detectEnvironment(function()
{
return $_SERVER['MY_LARAVEL_ENV'];
});

دسترسی به محیط برنامه فعلی

می توانید از طریق روش زیر به محیط برنامه فعلی دسترسی پیدا کنید environment :

$environment = App::environment();

همچنین می‌توانید آرگومان‌هایی را به environment متد ارسال کنید تا بررسی کنید که آیا محیط با مقدار مشخصی مطابقت دارد یا خیر:

if (App::environment('local'))
{
// The environment is local
}
 
if (App::environment('local', 'staging'))
{
// The environment is either local OR staging...
}

پیکربندی ارائه دهنده

هنگام استفاده از پیکربندی محیط، ممکن است بخواهید ارائه دهندگان خدمات محیطی را به فایل پیکربندی اولیه خود "ضمیمه" کنید app . با این حال، اگر این را امتحان کنید، متوجه خواهید شد که app ارائه دهندگان محیط، ارائه دهندگان را در app فایل پیکربندی اولیه شما نادیده می گیرند. برای اجبار کردن ارائه دهندگان به پیوست، از روش کمکی در فایل پیکربندی append_config محیط خود استفاده کنید: app

'providers' => append_config(array(
'LocalOnlyServiceProvider',
))

حفاظت از پیکربندی حساس

برای برنامه های "واقعی"، توصیه می شود تمام تنظیمات حساس خود را از فایل های پیکربندی خود دور نگه دارید. مواردی مانند رمزهای عبور پایگاه داده، کلیدهای Stripe API و کلیدهای رمزگذاری باید در صورت امکان از فایل های پیکربندی شما خارج شوند. بنابراین، ما باید آنها را در کجا قرار دهیم؟ خوشبختانه، لاراول یک راه حل بسیار ساده برای محافظت از این نوع آیتم های پیکربندی با استفاده از فایل های "dot" ارائه می دهد.

ابتدا برنامه خود را به گونه ای پیکربندی کنید که دستگاه شما را به عنوان موجود در local محیط تشخیص دهد. در مرحله بعد، یک .env.local.php فایل در ریشه پروژه خود ایجاد کنید، که معمولاً همان دایرکتوری حاوی composer.json فایل شما است. باید .env.local.php آرایه‌ای از جفت‌های کلید-مقدار را برگرداند، دقیقاً مانند یک فایل پیکربندی معمولی لاراول:

<?php
 
return array(
 
'TEST_STRIPE_KEY' => 'super-secret-sauce',
 
);

تمام جفت‌های کلید-مقدار بازگردانده‌شده توسط این فایل به‌طور خودکار از طریق «superglobals» $_ENV و $_SERVER PHP در دسترس خواهند بود. اکنون می توانید از داخل فایل های پیکربندی خود به این جهانی ها ارجاع دهید:

'key' => $_ENV['TEST_STRIPE_KEY']

حتما .env.local.php فایل را به فایل خود اضافه کنید .gitignore . این به دیگر توسعه دهندگان تیم شما اجازه می دهد تا پیکربندی محیط محلی خود را ایجاد کنند، و همچنین موارد پیکربندی حساس شما را از کنترل منبع پنهان کنند.

اکنون در سرور تولید خود، یک .env.php فایل در ریشه پروژه خود ایجاد کنید که حاوی مقادیر مربوط به محیط تولید شما باشد. مانند .env.local.php فایل، فایل تولیدی .env.php هرگز نباید در کنترل منبع گنجانده شود.

توجه: می توانید برای هر محیطی که برنامه شما پشتیبانی می کند یک فایل ایجاد کنید. به عنوان مثال، محیط در صورت وجود فایل، development آن را بارگذاری می کند . .env.development.php با این حال، production محیط همیشه از .env.php فایل استفاده می کند.

حالت تعمیر و نگهداری

هنگامی که برنامه شما در حالت تعمیر و نگهداری است، یک نمای سفارشی برای همه مسیرهای برنامه شما نمایش داده می شود. این کار باعث می‌شود تا برنامه خود را در حین به‌روزرسانی یا زمانی که در حال تعمیر و نگهداری هستید، «غیرفعال» کنید. فراخوانی App::down روش از قبل در فایل شما وجود دارد app/start/global.php . پاسخ این روش زمانی برای کاربران ارسال می شود که برنامه شما در حالت تعمیر و نگهداری باشد.

برای فعال کردن حالت نگهداری، به سادگی down دستور Artisan را اجرا کنید:

php artisan down

برای غیرفعال کردن حالت نگهداری، از up دستور زیر استفاده کنید:

php artisan up

برای نمایش یک نمای سفارشی زمانی که برنامه شما در حالت تعمیر و نگهداری است، می توانید چیزی شبیه به زیر را به فایل برنامه خود اضافه کنید app/start/global.php :

App::down(function()
{
return Response::view('maintenance', array(), 503);
});

اگر بسته شدن به down متد برگردد NULL ، حالت نگهداری برای آن درخواست نادیده گرفته می‌شود.

حالت نگهداری و صف

در حالی که برنامه شما در حالت تعمیر و نگهداری است، هیچ کار صفی انجام نخواهد شد. هنگامی که برنامه از حالت تعمیر و نگهداری خارج شد، کارها به صورت عادی انجام می شوند.