پیکربندی محیط(environment configuration)
معمولاً داشتن مقادیر پیکربندی متفاوت بر اساس محیطی که برنامه در آن اجرا می شود مفید است. برای مثال، ممکن است بخواهید از یک درایور کش متفاوت در دستگاه توسعه محلی خود نسبت به سرور تولید استفاده کنید. انجام این کار با استفاده از پیکربندی مبتنی بر محیط آسان است.
به سادگی یک پوشه در پوشه پیکربندی ایجاد کنید که با نام محیط شما مطابقت داشته باشد ، برای مثال local.
در مرحله بعد، فایل های پیکربندی را که می خواهید بیش از حد مجاز(override) کنید ایجاد کنید و گزینه های آن محیط را مشخص کنید. به عنوان مثال، اگر درایور کش برای محیط محلی را override کنید، یک فایل cache.php در app/config/local با محتوای زیر ایجاد باید کنید:
‘file’,
);
نکته!)از “test” به عنوان نام محیط استفاده نکنید. چون برای unit testing رزرو شده است.
توجه داشته باشید که لازم نیست هرگزینه ای که در فایل پیکربندی پایه هست مشخص کنید بلکه فقط آپشن هایی که می خواهید override کنید را مشخص کنید.
در مرحله بعد، باید به فریم ورک آموزش دهیم که چگونه تعیین کند در کدام محیط اجرا می شود.
محیط پیش فرض همیشه production است.
با این حال، می توانید محیط های دیگری را در فایل bootstrap/start.php در ریشه نصب خود راه اندازی کنید.
در این فایل $app->detectEnvironment را خواهید دید. آرایه ارسال شده به این متد برای تعیین محیط فعلی استفاده می شود.
در صورت نیاز می توانید محیط ها و نام ماشین های دیگر را به آرایه اضافه کنید.
detectEnvironment(array(
‘local’ => array(‘your-machine-name’),
));
در این مثال، ‘local’ نام محیط و ‘your-machine-name’ نام میزبان سرور شما است.
در لینوکس و مک، میتوانید نام میزبان خود را با استفاده از دستور ترمینال hostname تعیین کنید.
اگر به تشخیص محیط انعطاف پذیرتر نیاز دارید، می توانید یک Closure را به روش detectEnvironment ارسال کنید. به شما این امکان را می دهد که تشخیص محیط را هر طور که می خواهید پیاده سازی کنید:
$env = $app->detectEnvironment(function()
{
return $_SERVER[‘MY_LARAVEL_ENV’];
});
دسترسی به محیط برنامه فعلی(Accessing the current application environment)
شما می توانید از طریق متد 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…
}
پیکربندی ارائه دهنده(provider configuration)
هنگام استفاده از environment configuration، ممکن است بخواهید ارائه دهندگان خدمات محیط را به فایل پیکربندی برنامه اصلی خود اضافه کنید
با این حال، اگر این کار را امتحان کنید، متوجه خواهید شد که ارائه دهندگان برنامه های محیطی، ارائه دهندگان را در فایل پیکربندی برنامه اصلی شما لغو می کنند.
برای وادار کردن ارائه دهندگان به پیوست شدن، ازمتد کمکی theappend_config در فایل پیکربندی environment app خود استفاده کنید:
‘providers’ => append_config(array(
‘LocalOnlyServiceProvider’,
))
قوانین ارسال دیدگاه در سایت