跟我學(xué)Laravel之配置Laravel
當(dāng)你需要在運(yùn)行時(shí)訪問(wèn)配置項(xiàng)時(shí),可以使用Config類:
獲取一個(gè)配置項(xiàng)的值**
Config::get('app.timezone');
如果配置項(xiàng)不存在,你還可以指定返回的默認(rèn)值:
$timezone = Config::get('app.timezone', 'UTC');
為配置項(xiàng)賦值
注意"點(diǎn)"式語(yǔ)法可以用來(lái)訪問(wèn)不同文件里的配置項(xiàng)的值。你還可以在運(yùn)行時(shí)為配置項(xiàng)賦值。:
Config::set('database.default', 'sqlite');
在程序運(yùn)行時(shí)設(shè)置的配置值只在本次請(qǐng)求中有效,不會(huì)對(duì)以后的請(qǐng)求造成影響。
環(huán)境配置
通常應(yīng)用程序根據(jù)不同的運(yùn)行環(huán)境確定不同的配置項(xiàng)的值是非常有用的。例如,你也許希望在開(kāi)發(fā)機(jī)器與生產(chǎn)機(jī)器上使用不同的緩存驅(qū)動(dòng)(cache driver)。根據(jù)環(huán)境來(lái)改變配置就能很容易的達(dá)到此目的。
在config目錄下創(chuàng)建一個(gè)和你的環(huán)境名同名的目錄,例如local。然后,創(chuàng)建配置文件,這些配置文件中包含你想覆蓋的配置選項(xiàng)。例如,要在本地環(huán)境中覆蓋緩存驅(qū)動(dòng)(cache driver),你可以在app/config/local目錄中創(chuàng)建cache.php文件并包含如下內(nèi)容:
<?php
return array(
'driver' => 'file',
);
注意: 不要使用'testing'作為環(huán)境名,它是專門為單元測(cè)試所保留的。
注意,你不需要為基礎(chǔ)配置文件中的所有配置項(xiàng)指定值,只需指定你需要覆蓋的配置選項(xiàng)即可。環(huán)境配置文件將會(huì)以"cascade"方式覆蓋基本配置文件。
接下來(lái),我們需要指導(dǎo)框架如何確定其運(yùn)行環(huán)境。默認(rèn)環(huán)境總是produciton。然而,你可以在安裝目錄的根目錄下的bootstrap/start.php 文件中設(shè)置其他的環(huán)境。在該文件中,你可以找到 $app->detectEnvironment方法的調(diào)用。傳入的數(shù)組參數(shù)就是用來(lái)確定當(dāng)前運(yùn)行環(huán)境的。你可以根據(jù)需要添加其他的環(huán)境或機(jī)器名。
<?php
$env = $app->detectEnvironment(array(
'local' => array('your-machine-name'),
));
在此案例中,'local' 是運(yùn)行環(huán)境的名稱,'your-machine-name' 是服務(wù)器的主機(jī)名。在Linux和Mac上,可以通過(guò) hostname 命令來(lái)確定所用機(jī)器的主機(jī)名。
如果你需要更靈活的環(huán)境檢查方式,可以在調(diào)用detectEnvironment時(shí)傳遞一個(gè)閉包(Closure) , 這樣你就可以按照自己的方式檢查環(huán)境了:
$env = $app->detectEnvironment(function()
{
return $_SERVER['MY_LARAVEL_ENV'];
});
獲取當(dāng)前的應(yīng)用環(huán)境
可以通用調(diào)用environment方法來(lái)獲取當(dāng)前的應(yīng)用環(huán)境:
$environment = App::environment();
你還可以將參數(shù)傳遞給 environment 方法來(lái)判斷應(yīng)用環(huán)境是否與某個(gè)給定值匹配:
if (App::environment('local'))
{
// The environment is local
}
if (App::environment('local', 'staging'))
{
// The environment is either local OR staging...
}
維護(hù)模式
當(dāng)應(yīng)用處于維護(hù)模式時(shí),所有的路由都會(huì)指向一個(gè)自定義的視圖。這對(duì)于更新應(yīng)用或執(zhí)行維護(hù)任務(wù)時(shí)臨時(shí)"禁用"當(dāng)前應(yīng)用是很方便的。App::down方法在app/start/global.php文件里進(jìn)行了定義,它將在維護(hù)模式時(shí)將該方法輸出的內(nèi)容展示給用戶。
要開(kāi)啟維護(hù)模式,只需執(zhí)行Artisan 的 down命令:
php artisan down
要關(guān)閉維護(hù)模式,只需執(zhí)行 up 命令:
php artisan up
當(dāng)你的應(yīng)用處于維護(hù)模式時(shí),如需展示一個(gè)自定義的視圖,只要在app/start/global.php文件中加入如下代碼即可:
App::down(function()
{
return Response::view('maintenance', array(), 503);
});
如果傳遞給 down 方法的閉包返回值為 NULL, 在此次請(qǐng)求中將忽略維護(hù)模式。
維護(hù)模式 & 隊(duì)列
當(dāng)應(yīng)用程序處于維護(hù)模式時(shí), 將不接受新的隊(duì)列任務(wù) 。一旦應(yīng)用程序退出維護(hù)模式,隊(duì)列任務(wù)的處理即恢復(fù)正常。
- Laravel 5框架學(xué)習(xí)之環(huán)境與配置
- Laravel框架路由配置總結(jié)、設(shè)置技巧大全
- 淺析Laravel5中隊(duì)列的配置及使用
- Laravel 5.5官方推薦的Nginx配置學(xué)習(xí)教程
- PHP開(kāi)發(fā)框架laravel安裝與配置教程
- PHP框架laravel的.env文件配置教程
- laravel安裝和配置教程
- Laravel如何友好的修改.env配置文件詳解
- Laravel 5.3 學(xué)習(xí)筆記之 配置
- Laravel配置全局公共函數(shù)的方法步驟
- Laravel框架環(huán)境與配置操作實(shí)例分析
相關(guān)文章
Laravel 5.4.36中session沒(méi)有保存成功問(wèn)題的解決
這篇文章主要給大家介紹了關(guān)于Laravel 5.4.36中session沒(méi)有保存成功問(wèn)題的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-02-02
destoon實(shí)現(xiàn)會(huì)員商鋪中指定會(huì)員或會(huì)員組投放廣告的方法
這篇文章主要介紹了destoon實(shí)現(xiàn)會(huì)員商鋪中指定會(huì)員或會(huì)員組投放廣告的方法,很實(shí)用的技巧,需要的朋友可以參考下2014-08-08
thinkphp6使用mysql悲觀鎖解決商品超賣問(wèn)題的實(shí)現(xiàn)
這篇文章主要介紹了thinkphp6使用mysql悲觀鎖解決商品超賣問(wèn)題的實(shí)現(xiàn)2021-11-11
php實(shí)現(xiàn)斷點(diǎn)續(xù)傳大文件示例代碼
這篇文章主要介紹了如何用php實(shí)現(xiàn)斷點(diǎn)續(xù)傳大文件,文中代碼非常細(xì)致,幫助大家學(xué)習(xí)和參考,感興趣的朋友可以了解下2020-06-06
PHP使用第三方即時(shí)獲取物流動(dòng)態(tài)實(shí)例詳解
這篇文章主要介紹了PHP使用第三方即時(shí)獲取物流動(dòng)態(tài),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-04-04
PHP獲取當(dāng)前日期和時(shí)間及格式化方法參數(shù)
這篇文章主要介紹了PHP獲取當(dāng)前日期和時(shí)間及格式化方法參數(shù),本文先是講解了獲取當(dāng)前日期時(shí)間的方法,其后總結(jié)了格式化參數(shù),需要的朋友可以參考下2015-05-05
php實(shí)現(xiàn)的獲取網(wǎng)站備案信息查詢代碼(360)
有時(shí)候我們需要獲取網(wǎng)站備案信息,那么就可以用這個(gè)小偷程序,獲取了,信息從360抓取2013-09-09

