所有 Laravel 框架的配置文件都放置在 config
目錄下。 每個(gè)選項(xiàng)都有說(shuō)明,因此你可以輕松地瀏覽這些文檔,并且熟悉這些選項(xiàng)配置。
在安裝 Laravel 后,你可以「命名」你的應(yīng)用程序。默認(rèn)情況下,app
的目錄是在 App
的命名空間 下,通過(guò) Composer 使用 PSR-4 自動(dòng)載入規(guī)范 自動(dòng)加載。不過(guò),你可以輕松地通過(guò) Artisan 命令 app:name
來(lái)修改命名空間,以配合你的應(yīng)用程序名稱。
舉例來(lái)說(shuō),假設(shè)你的應(yīng)用程序叫做「 Horsefly 」,你可以從安裝的根目錄執(zhí)行下面的命令:
php artisan app:name Horsefly
重命名你的應(yīng)用程序是完全可選的,你也可以保留原有的命名空間 App
。
Laravel 幾乎不需配置就可以馬上使用。你可以自由的開(kāi)始開(kāi)發(fā)!然而,你可以瀏覽 config/app.php
文件和其他的文檔。你可能希望依據(jù)你的本機(jī)而做更改,文件包含數(shù)個(gè)選項(xiàng)如時(shí)區(qū)
和語(yǔ)言環(huán)境
。
一旦 Laravel 安裝完成,你應(yīng)該同時(shí) 配置本機(jī)環(huán)境。
注意: 你不應(yīng)該在正式環(huán)境中將
app.debug
配置為true
。絕對(duì)!千萬(wàn)不要!
Laravel 框架某些目錄需要額外權(quán)限:storage
以及 vendor
目錄必須讓服務(wù)器有寫入權(quán)限。
你可以很輕松的使用 Config
facade 取得你的配置值:
$value = Config::get('app.timezone');Config::set('app.timezone', 'America/Chicago');
你也可以使用 config
輔助方法:
$value = config('app.timezone');
通常應(yīng)用程序常常需要根據(jù)不同的執(zhí)行環(huán)境而有不同的配置值。例如,你會(huì)希望在你的本機(jī)開(kāi)發(fā)環(huán)境上會(huì)有與正式環(huán)境不同的緩存驅(qū)動(dòng)(cache driver),通過(guò)配置文件,就可以輕松完成。
Laravel 通過(guò) DotEnv Vance Lucas 寫的一個(gè) PHP 類庫(kù)。 在全新安裝好的 Laravel 里,你的應(yīng)用程序的根目錄下會(huì)包含一個(gè) .env.example
文件。如果你通過(guò) Composer 安裝 Laravel,這個(gè)文件將自動(dòng)被命名為 .env
,不然你應(yīng)該手動(dòng)更改文件名。
當(dāng)你的應(yīng)用程序收到請(qǐng)求,這個(gè)文件所有的變量會(huì)被加載到 $_ENV
這個(gè) PHP 超級(jí)全局變量里。你可以使用輔助方法 env
查看這些變量。事實(shí)上,如果你查看過(guò) Laravel 配置文件,你會(huì)注意到幾個(gè)選項(xiàng)已經(jīng)在使用這個(gè)輔助方法!
根據(jù)你的本機(jī)服務(wù)器或者線上環(huán)境需求,你可以自由的修改你的環(huán)境變量。然而, 你的 .env
文件不應(yīng)該被提交到應(yīng)用程序的版本控制系統(tǒng),因?yàn)槊總€(gè)開(kāi)發(fā)人員或服務(wù)器使用你的應(yīng)用程序可能需要不同的環(huán)境配置。
如果你是一個(gè)團(tuán)隊(duì)的開(kāi)發(fā)者,不妨將 .env.example
文件包含到你的應(yīng)用程序。通過(guò)例子配置文件里的預(yù)留值,你的團(tuán)隊(duì)中其他開(kāi)發(fā)人員可以清楚地看到執(zhí)行你的應(yīng)用程序所需的哪些環(huán)境變量。
你可以通過(guò) Application
實(shí)例中的 environment
方法取得目前應(yīng)用程序的環(huán)境:
$environment = $app->environment();
你也可以傳遞參數(shù)至 environment
方法中,來(lái)確認(rèn)目前的環(huán)境是否與參數(shù)相符合:
if ($app->environment('local')){ // The environment is local}if ($app->environment('local', 'staging')){ // The environment is either local OR staging...}
如果想取得應(yīng)用程序的實(shí)例,可以通過(guò)服務(wù)容器的 Illuminate\Contracts\Foundation\Application
contract 來(lái)取得。當(dāng)然,如果你想在服務(wù)提供者中使用,應(yīng)用程序?qū)嵗梢酝ㄟ^(guò)實(shí)例變量 $this->app
取得。
也能通過(guò) App
facade 或者輔助方法 app
取得應(yīng)用程序?qū)嵗?/p>
$environment = app()->environment();$environment = App::environment();
為了讓你的的應(yīng)用程序提升一些速度,你可以使用 Artisan 命令 config:cache
將所有的配置文件緩存到單一文件。通過(guò)命令會(huì)將所有的配置選項(xiàng)合并成一個(gè)文件,讓框架能夠快速加載。
通常來(lái)說(shuō),你應(yīng)該將執(zhí)行 config:cache
命令作為部署工作的一部分。
當(dāng)你的應(yīng)用程序處于維護(hù)模式時(shí),所有的路由都會(huì)指向一個(gè)自定的視圖。當(dāng)你要更新或維護(hù)網(wǎng)站時(shí),「關(guān)閉」整個(gè)網(wǎng)站是很簡(jiǎn)單的。維護(hù)模式會(huì)檢查包含在應(yīng)用程序的默認(rèn)中間件堆棧。如果應(yīng)用程序處于維護(hù)模式,HttpException
會(huì)拋出 503 的狀態(tài)碼。
啟用維護(hù)模式,只需要執(zhí)行 Artisan 命令 down
:
php artisan down
關(guān)閉維護(hù)模式,請(qǐng)使用 Artisan 命令 up
:
php artisan up
維護(hù)模式響應(yīng)的默認(rèn)模板放在 resources/views/errors/503.blade.php
。
當(dāng)應(yīng)用程序處于維護(hù)模式中,將不會(huì)處理任何隊(duì)列工作。所有的隊(duì)列工作將會(huì)在應(yīng)用程序離開(kāi)維護(hù)模式后繼續(xù)被進(jìn)行。
Laravel 框架通過(guò) public/.htaccess
文件來(lái)讓網(wǎng)址中不需要 index.php
。如果你的服務(wù)器是使用 Apache ,請(qǐng)確認(rèn)是否有開(kāi)啟 mod_rewrite
模塊。
假設(shè) Laravel 附帶的 .htaccess
文件在 Apache 無(wú)法生效的話,請(qǐng)嘗試下面的方法:
Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L]
If your web host doesn't allow the FollowSymlinks
option, try replacing it with Options +SymLinksIfOwnerMatch
.
若使用 Nginx ,可以在你的網(wǎng)站配置中增加下面的配置,以開(kāi)啟「優(yōu)雅鏈接」:
location / { try_files $uri $uri/ /index.php?$query_string;}
當(dāng)然,如果你使用 Homestead 的話,優(yōu)雅鏈接會(huì)自動(dòng)的幫你配置完成。
更多建議: